/* ==============================================================================
   * NAUTICAPRO RAHMAT — MARITIME TACTICAL STYLESHEET (Stylesheet.html)
   * High-Performance Bridge Operations Console & Dual Theme (Dark / Light Mode)
   * Standar Kontras Tinggi ISO 8468 & Cetak Dokumen Sertifikasi Resmi SOLAS A4
   * Pushidrosal Nautical Chart Catalog & Multi-Scale Routing Engine (Besar, Sedang, Kecil)
   * By @doople & Muhammad Rahmatullah S
   * ============================================================================== */

  :root {
    /* =========================================================
     * LIGHT MODE (Daylight Bridge Watch / Terang)
     * Kontras Tinggi WCAG AAA untuk pandangan siang hari di anjungan
     * ========================================================= */
    --bg-surface: #f8fafc;
    /* Slate 50 - latar conning bersih & jernih */
    --bg-surface-dim: #edf2f7;
    /* Slate 100 */
    --bg-container-lowest: #ffffff;
    /* Pure White - form input & dialog */
    --bg-container-low: #ffffff;
    /* Pure White - kartu sekunder */
    --bg-container: #ffffff;
    /* Pure White - kartu utama modul */
    --bg-container-high: #f1f5f9;
    /* Slate 100 - row tabel zebra & nested */
    --bg-container-highest: #e2e8f0;
    /* Slate 200 - header tabel & pembatas */
    --color-primary: #0284c7;
    /* Ocean Sky 600 - biru maritim berdaya baca tinggi */
    --color-primary-container: #0284c7;
    /* Tombol aksi aktif */
    --color-on-primary: #ffffff;
    /* Teks tombol putih pekat */
    --color-on-primary-container: #ffffff;
    /* Teks kontainer aksi putih */
    --color-secondary: #0369a1;
    /* Deep Sky 700 - aksen sekunder */
    --color-secondary-container: #e0f2fe;
    /* Light Sky 100 */
    --color-tertiary: #047857;
    /* Deep Emerald 700 - indikator AMAN tegas */
    --color-tertiary-container: #d1fae5;
    /* Light Emerald 100 */
    --color-on-surface: #0f172a;
    /* Midnight Navy / Slate 900 - teks hitam pekat terbaca tajam */
    --color-on-surface-variant: #1e293b;
    /* Slate 800 - label form & kolom berkontras tinggi */
    --color-outline: #475569;
    /* Slate 600 - satuan & petunjuk terbaca jelas */
    --color-outline-variant: #cbd5e1;
    /* Slate 300 - garis pembatas tegas */
    --color-error: #b91c1c;
    /* Red 700 - bahaya */
    --color-error-container: #fee2e2;
  }

  /* =========================================================
   * DARK MODE (Bridge Night Tactical Conning / Gelap ECDIS)
   * Mengurangi silau mata saat tugas jaga malam (SOLAS V Compliance)
   * ========================================================= */
  html.dark {
    color-scheme: dark;
    --bg-surface: #050e1d;
    /* Deep tactical conning navy */
    --bg-surface-dim: #030811;
    /* Deep conning abyss */
    --bg-container-lowest: #020914;
    /* Panel form input gelap berdefinisi tinggi */
    --bg-container-low: #081324;
    /* Kartu sekunder */
    --bg-container: #0d1b30;
    /* Kartu utama conning */
    --bg-container-high: #132742;
    /* Elevated hover state */
    --bg-container-highest: #1d3557;
    /* Elevated headers & table borders */
    --color-primary: #38bdf8;
    /* Luminous Sky 400 - Biru cyan ECDIS terang berpendar */
    --color-primary-container: #0284c7;
    /* Solid button blue */
    --color-on-primary: #ffffff;
    /* Pure white */
    --color-on-primary-container: #ffffff;
    /* Pure white */
    --color-secondary: #7dd3fc;
    /* Luminous Sky 300 */
    --color-secondary-container: #0369a1;
    /* Blue container */
    --color-tertiary: #34d399;
    /* Luminous Emerald 400 - Hijau status AMAN terang */
    --color-tertiary-container: #065f46;
    /* Dark emerald */
    --color-on-surface: #f8fafc;
    /* Crisp Slate 50 - teks putih kristal tajam 100% */
    --color-on-surface-variant: #cbd5e1;
    /* Slate 300 - label & judul terang, nyaman di mata malam */
    --color-outline: #94a3b8;
    /* Slate 400 - satuan & petunjuk luminous tanpa buram */
    --color-outline-variant: #1e2d42;
    /* Border navy conning presisi */
    --color-error: #f87171;
    /* Luminous Red 400 */
    --color-error-container: #7f1d1d;
    /* Dark red */
  }

  /* =========================================================
   * NIGHT RED MODE (Bridge Watch Tactical Red - ISO 8468 & IMO)
   * Mengurangi silau dan mempertahankan adaptasi penglihatan malam (rhodopsin)
   * Sesuai standar conning display ECDIS pada anjungan laut gelap
   * ========================================================= */
  html.night-red {
    color-scheme: dark;
    --bg-surface: #0a0202;
    --bg-surface-dim: #050000;
    --bg-container-lowest: #0d0303;
    --bg-container-low: #140505;
    --bg-container: #1b0707;
    --bg-container-high: #260a0a;
    --bg-container-highest: #380d0d;
    --color-primary: #ef4444;
    --color-primary-container: #991b1b;
    --color-on-primary: #ffffff;
    --color-on-primary-container: #fee2e2;
    --color-secondary: #f87171;
    --color-secondary-container: #7f1d1d;
    --color-tertiary: #f87171;
    --color-tertiary-container: #450a0a;
    --color-on-surface: #ffffff;
    --color-on-surface-variant: #fca5a5;
    --color-outline: #f87171;
    --color-outline-variant: #450a0a;
    --color-error: #ff3333;
    --color-error-container: #450a0a;
  }

  /* Ergonomi Sentuh di Laut Berombak (ISO 8468 & WCAG 2.5.5) */
  @media (max-width: 640px) {

    button,
    select,
    input {
      min-height: 38px;
    }
  }

  /* General hidden utility (safely preserves Tailwind responsive modifiers) */
  .hidden:not(.md\:flex):not(.lg\:flex):not(.sm\:flex):not(.md\:block) {
    display: none !important;
  }

  /* Garansi Tampilan Desktop & Sidebar Conning Console (min-width: 768px) */
  @media (min-width: 768px) {

    aside.md\:flex,
    header div.md\:flex,
    div.md\:flex {
      display: flex !important;
    }

    nav.md\:hidden {
      display: none !important;
    }
  }

  @media (min-width: 1024px) {
    header div.lg\:flex {
      display: flex !important;
    }
  }

  @media (min-width: 640px) {
    header div.sm\:flex {
      display: flex !important;
    }

    span.sm\:inline {
      display: inline !important;
    }

    span.sm\:inline-block {
      display: inline-block !important;
    }
  }

  html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
  }

  html,
  body {
    margin: 0;
    padding: 0;
    background-color: var(--bg-surface);
    color: var(--color-on-surface);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    -webkit-tap-highlight-color: transparent;
    -webkit-overflow-scrolling: touch;
    transition: background-color 0.25s ease, color 0.25s ease;
  }


  /* ==============================================================================
   * KRISPINESS & ALIGNMENT SIMBOL / ICON MARITIM (Material Symbols Outlined)
   * Standar ECDIS & Radar Conning: Ikon tajam, vertikal terpusat, dan kontras tinggi
   * ============================================================================== */
  .material-symbols-outlined {
    font-family: 'Material Symbols Outlined' !important;
    font-weight: 400;
    font-style: normal;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    user-select: none;
    flex-shrink: 0;
  }

  /* Ikon di dalam tombol aktif sidebar & aksi selalu putih bersih berkontras tinggi */
  .sidebar-btn.bg-primary-container .material-symbols-outlined,
  .sidebar-btn.bg-primary-container span {
    color: #ffffff !important;
  }

  /* Ketinggian & Kontras Kartu Anjungan di Kedua Mode */
  .bg-surface-container,
  .conning-card {
    box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.05), 0 1px 2px -1px rgba(0, 0, 0, 0.05);
  }

  html.dark .bg-surface-container,
  html.dark .conning-card {
    box-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.45);
  }

  /* Peningkatan Keterbacaan Form & Input di Semua Mode */
  input,
  select,
  textarea {
    color: var(--color-on-surface) !important;
    background-color: var(--bg-container-lowest) !important;
    border: 1px solid var(--color-outline-variant) !important;
    font-family: inherit;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
  }

  input:focus,
  select:focus,
  textarea:focus {
    border-color: var(--color-primary) !important;
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(2, 132, 199, 0.25) !important;
  }

  html.dark input:focus,
  html.dark select:focus,
  html.dark textarea:focus {
    box-shadow: 0 0 0 2px rgba(56, 189, 248, 0.3) !important;
  }

  /* Dropdown Option Warna Sesuai Tema */
  select option {
    background-color: var(--bg-container) !important;
    color: var(--color-on-surface) !important;
  }

  /* Kepastian Keterbacaan Input & Form di Kedua Mode */
  input,
  select,
  textarea {
    color: var(--color-on-surface) !important;
  }

  input::placeholder,
  textarea::placeholder {
    color: var(--color-outline) !important;
    opacity: 0.85;
  }

  /* ==============================================================================
   * KETERBACAAN ICON DATE & TIME PICKER (Show local date and time picker)
   * Menjadikan icon kalender & jam selalu terang & terlihat jelas di Dark Mode
   * ============================================================================== */
  input[type="date"],
  input[type="time"],
  input[type="datetime-local"] {
    color-scheme: light;
    cursor: pointer;
  }

  ::-webkit-calendar-picker-indicator {
    cursor: pointer;
    border-radius: 4px;
    padding: 3px;
    opacity: 0.8;
    transition: opacity 0.2s ease, transform 0.15s ease;
  }

  ::-webkit-calendar-picker-indicator:hover {
    opacity: 1;
    transform: scale(1.15);
  }

  html.dark input[type="date"],
  html.dark input[type="time"],
  html.dark input[type="datetime-local"] {
    color-scheme: dark;
  }

  html.dark ::-webkit-calendar-picker-indicator {
    filter: brightness(0) invert(1);
    opacity: 0.95;
  }

  html.dark ::-webkit-calendar-picker-indicator:hover {
    filter: brightness(0) invert(1) drop-shadow(0 0 3px #38bdf8);
    opacity: 1;
  }

  .pb-safe {
    padding-bottom: max(env(safe-area-inset-bottom, 0px), 16px) !important;
  }

  .pt-safe {
    padding-top: max(env(safe-area-inset-top, 0px), 12px) !important;
  }

  /* ==============================================================================
   * 1. KHUSUS LAPTOP & DESKTOP (Layar Lebar & Pointer Mouse):
   * Hilangkan Bilah Menu Bawah Sepenuhnya (Navigasi Penuh via Sidebar Kiri Anjungan)
   * ============================================================================== */
  @media (min-width: 1024px), (min-width: 768px) and (hover: hover) {
    #mobileBottomNav {
      display: none !important;
      visibility: hidden !important;
      opacity: 0 !important;
      pointer-events: none !important;
      height: 0 !important;
      min-height: 0 !important;
      max-height: 0 !important;
      padding: 0 !important;
      margin: 0 !important;
      border: none !important;
      box-shadow: none !important;
      transform: translateY(200%) !important;
    }
  }

  /* ==============================================================================
   * 2. KHUSUS MOBILE SMARTPHONE & TABLET SENTUH:
   * Bilah Menu Bawah Aktif dengan Ergonomi Jempol & Safe-Area iOS/Android
   * ============================================================================== */
  @media (max-width: 1023px) and (hover: none), (max-width: 767px) {
    #mobileBottomNav {
      position: fixed !important;
      bottom: 0 !important;
      left: 0 !important;
      right: 0 !important;
      height: auto !important;
      min-height: calc(54px + max(env(safe-area-inset-bottom, 0px), 18px)) !important;
      max-height: none !important;
      padding-top: 6px !important;
      padding-bottom: max(env(safe-area-inset-bottom, 0px), 18px) !important;
      padding-left: 6px !important;
      padding-right: 6px !important;
      box-sizing: border-box !important;
      display: flex !important;
      align-items: center !important;
      justify-content: space-around !important;
      z-index: 50 !important;
      transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s ease;
      will-change: transform, opacity;
    }
  }

  /* Auto-hide Bottom Navigation saat keyboard input aktif di layar HP */
  body.keyboard-active #mobileBottomNav {
    transform: translateY(125%) !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  /* Scrollbar Kustom Anjungan */
  ::-webkit-scrollbar {
    width: 6px;
    height: 6px;
  }

  ::-webkit-scrollbar-track {
    background: var(--bg-surface-dim);
  }

  ::-webkit-scrollbar-thumb {
    background: var(--bg-container-highest);
    border-radius: 4px;
    border: 1px solid var(--color-outline-variant);
  }

  ::-webkit-scrollbar-thumb:hover {
    background: var(--color-outline);
  }

  /* Tactical Night Vision Mode (Filter Merah ECDIS untuk Jaga Malam) */
  .tactical-night-mode {
    filter: sepia(100%) hue-rotate(310deg) saturate(380%) brightness(85%) contrast(125%);
  }

  /* Animasi Jarum Dial Kompas Taktis */
  .gauge-needle {
    transform-origin: 50% 50%;
    transition: transform 0.65s cubic-bezier(0.34, 1.56, 0.64, 1);
  }

  /* Glow Sensor Maritim */
  .pulse-glow-tertiary {
    box-shadow: 0 0 12px rgba(52, 211, 153, 0.45);
  }

  .pulse-glow-primary {
    box-shadow: 0 0 12px rgba(56, 189, 248, 0.45);
  }

  /* Optimasi Sentuhan Mobile & Laptop */
  @media (max-width: 768px) {

    button,
    input,
    select {
      min-height: 44px;
    }
  }

  /* ==============================================================================
   * STILISASI KHUSUS BADGE & LABEL SKALA PETA PUSHIDROSAL (BESAR, SEDANG, KECIL)
   * ============================================================================== */
  .badge-scale-besar {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 11px;
    font-family: 'JetBrains Mono', Consolas, monospace;
    font-weight: 700;
    text-transform: uppercase;
    background-color: rgba(4, 120, 87, 0.12);
    color: #047857;
    border: 1px solid rgba(4, 120, 87, 0.35);
    white-space: nowrap;
  }

  html.dark .badge-scale-besar {
    background-color: rgba(52, 211, 153, 0.15);
    color: #34d399;
    border: 1px solid rgba(52, 211, 153, 0.4);
  }

  .badge-scale-sedang {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 11px;
    font-family: 'JetBrains Mono', Consolas, monospace;
    font-weight: 700;
    text-transform: uppercase;
    background-color: rgba(180, 83, 9, 0.12);
    color: #b45309;
    border: 1px solid rgba(180, 83, 9, 0.35);
    white-space: nowrap;
  }

  html.dark .badge-scale-sedang {
    background-color: rgba(251, 191, 36, 0.15);
    color: #fbbf24;
    border: 1px solid rgba(251, 191, 36, 0.4);
  }

  .badge-scale-kecil {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 11px;
    font-family: 'JetBrains Mono', Consolas, monospace;
    font-weight: 700;
    text-transform: uppercase;
    background-color: rgba(2, 132, 199, 0.12);
    color: #0284c7;
    border: 1px solid rgba(2, 132, 199, 0.35);
    white-space: nowrap;
  }

  html.dark .badge-scale-kecil {
    background-color: rgba(56, 189, 248, 0.15);
    color: #38bdf8;
    border: 1px solid rgba(56, 189, 248, 0.4);
  }

  .badge-warrior-onboard {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 11px;
    font-family: 'JetBrains Mono', Consolas, monospace;
    font-weight: 700;
    text-transform: uppercase;
    background-color: rgba(2, 132, 199, 0.15);
    color: #0284c7;
    border: 1px solid rgba(2, 132, 199, 0.35);
    white-space: nowrap;
  }

  .dark .badge-warrior-onboard {
    background-color: rgba(56, 189, 248, 0.15);
    color: #38bdf8;
    border: 1px solid rgba(56, 189, 248, 0.35);
  }

  .chart-scale-chip {
    cursor: pointer;
    transition: all 0.15s ease-in-out;
  }

  .chart-scale-chip:hover {
    transform: scale(1.04);
    filter: brightness(1.2);
  }

  .chart-interactive-cell {
    cursor: pointer;
    transition: background-color 0.15s ease;
    border-radius: 6px;
    padding: 3px 6px;
  }

  .chart-interactive-cell:hover {
    background-color: rgba(56, 189, 248, 0.1);
  }

  /* ==============================================================================
   * MEDIA PRINT DEDIKASI CETAK PDF RESMI STANDAR MARITIM INTERNASIONAL (1 HALAMAN A4)
   * Menyembunyikan seluruh UI web modal / toast / navigasi, dan menampilkan
   * lembar sertifikat inspeksi taktis anjungan yang rapi, presisi & profesional.
   * Standar IMO Resolution A.893(21), SOLAS Chapter V, & ISO 8468.
   * ============================================================================== */
  /* Proteksi Layar Utama: Sembunyikan jika memiliki class .hidden */
  #printableReportDocument.hidden {
    display: none !important;
  }

  /* Universal Layout Engine untuk Dokumen Cetak Maritim A4 (Laptop, iPad & Mobile) */
  #printableReportDocument .print-doc-container,
  .print-sheet-paper .print-doc-container {
    border: 2px solid #0f2b48 !important;
    border-radius: 4px !important;
    padding: 8px 12px 6px 12px !important;
    background: #ffffff !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 194mm !important;
    min-width: 194mm !important;
    margin: 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    color: #0f172a !important;
  }

  #printableReportDocument .print-kpi-row,
  .print-sheet-paper .print-kpi-row {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    border: 1.5px solid #0f2b48 !important;
    border-radius: 4px !important;
    background: #f8fafc !important;
    margin-bottom: 10px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  #printableReportDocument .print-kpi-col,
  .print-sheet-paper .print-kpi-col {
    display: block !important;
    flex: 0 0 25% !important;
    width: 25% !important;
    max-width: 25% !important;
    min-width: 0 !important;
    padding: 6px 4px !important;
    text-align: center !important;
    border: none !important;
    border-right: 1px solid #cbd5e1 !important;
    box-sizing: border-box !important;
  }

  #printableReportDocument .print-kpi-col:last-child,
  .print-sheet-paper .print-kpi-col:last-child {
    border-right: none !important;
  }

  #printableReportDocument .print-header-table,
  .print-sheet-paper .print-header-table {
    width: 100% !important;
    border-collapse: collapse !important;
    border-bottom: 2px solid #0f2b48 !important;
    margin-bottom: 11px !important;
  }

  #printableReportDocument .print-meta-grid,
  .print-sheet-paper .print-meta-grid {
    width: 100% !important;
    border-collapse: collapse !important;
    margin-bottom: 9px !important;
    font-size: 7.2pt !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    table-layout: fixed !important;
  }

  @media print {
    @page {
      size: A4 portrait;
      margin: 22mm 7mm 8mm 7mm;
    }

    @page: first {
      margin-top: 5mm;
    }

    /* 1. Sembunyikan Seluruh Shell Web App, Modal Layar, Navigasi, dan Toast */
    .hidden {
      display: none !important;
    }

    html,
    body {
      background: #ffffff !important;
      color: #0f172a !important;
      font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
      -webkit-print-color-adjust: exact !important;
      print-color-adjust: exact !important;
      width: 100% !important;
      margin: 0 !important;
      padding: 0 !important;
    }

    header,
    aside,
    nav,
    #loginModal,
    #resultModal,
    #chartDetailModal,
    #toastContainer,
    #appContainer,
    button,
    .no-print,
    body > *:not(#printableReportDocument) {
      display: none !important;
    }

    /* 2. Tampilkan HANYA Lembar Dokumen Cetak Dedicated */
    #printableReportDocument {
      display: block !important;
      position: relative !important;
      width: 100% !important;
      max-width: 194mm !important;
      margin: 0 auto !important;
      padding: 0 !important;
      background: #ffffff !important;
      color: #0f172a !important;
      page-break-inside: avoid !important;
      break-inside: avoid !important;
      page-break-after: avoid !important;
      break-after: avoid !important;
    }

    /* 3. Sertifikat Resmi Anjungan (Executive Maritime Class Certificate) */
    .print-doc-container {
      border: 2px solid #0f2b48 !important;
      border-radius: 4px !important;
      padding: 8px 12px 6px 12px !important;
      background: #ffffff !important;
      box-sizing: border-box !important;
      page-break-inside: avoid !important;
      break-inside: avoid !important;
      page-break-after: avoid !important;
      break-after: avoid !important;
      width: 100% !important;
      max-width: 194mm !important;
      margin: 0 auto !important;
      display: flex !important;
      flex-direction: column !important;
      justify-content: space-between !important;
      max-height: 275mm !important;
    }

    .print-header-table {
      width: 100% !important;
      border-collapse: collapse !important;
      border-bottom: 2px solid #0f2b48 !important;
      margin-bottom: 11px !important;
    }

    .print-header-table td {
      vertical-align: middle !important;
      padding-top: 2px !important;
      padding-bottom: 12px !important;
    }

    .print-crest-cell {
      width: 58px !important;
      padding-right: 14px !important;
      vertical-align: middle !important;
    }

    .print-brand-cell {
      vertical-align: middle !important;
      padding-left: 0 !important;
    }

    .print-crest-badge {
      width: 44px !important;
      height: 44px !important;
      border: 1.5px solid #0f2b48 !important;
      border-radius: 4px !important;
      background: #f0f9ff !important;
      display: flex !important;
      align-items: center !important;
      justify-content: center !important;
    }

    .print-crest-svg {
      width: 26px !important;
      height: 26px !important;
      stroke: #0284c7 !important;
    }

    .print-doc-brand {
      font-size: 6.8pt !important;
      font-weight: 800 !important;
      color: #0369a1 !important;
      letter-spacing: 1.2px !important;
      text-transform: uppercase !important;
      line-height: 1.3 !important;
      margin-bottom: 4px !important;
    }

    .print-doc-title {
      font-size: 12pt !important;
      font-weight: 900 !important;
      color: #0a2540 !important;
      letter-spacing: 0.3px !important;
      text-transform: uppercase !important;
      margin: 0 0 4px 0 !important;
      line-height: 1.4 !important;
    }

    .print-vessel-headline {
      font-size: 9.5pt !important;
      font-weight: 800 !important;
      color: #0284c7 !important;
      letter-spacing: 0.4px !important;
      text-transform: uppercase !important;
      margin-top: 0 !important;
      line-height: 1.3 !important;
    }

    .print-id-card {
      text-align: right !important;
      width: 155px !important;
    }

    .print-id-badge {
      border: 1px solid #cbd5e1 !important;
      background: #f8fafc !important;
      border-radius: 3px !important;
      padding: 5px 8px !important;
      text-align: right !important;
      display: inline-block !important;
    }

    .print-id-label {
      font-size: 6.0pt !important;
      font-family: 'JetBrains Mono', Consolas, monospace !important;
      font-weight: 800 !important;
      color: #475569 !important;
      letter-spacing: 0.5px !important;
      line-height: 1.25 !important;
      margin-bottom: 2px !important;
    }

    .print-id-val {
      font-size: 9.8pt !important;
      font-family: 'JetBrains Mono', Consolas, monospace !important;
      font-weight: 900 !important;
      color: #0a2540 !important;
      line-height: 1.3 !important;
      margin-bottom: 2px !important;
    }

    .print-id-std {
      font-size: 6.0pt !important;
      color: #047857 !important;
      font-weight: 800 !important;
      letter-spacing: 0.2px !important;
      margin-top: 0 !important;
      line-height: 1.25 !important;
    }

    /* 4. Grid Metadata 4 Kolom Rapi & Terpadu */
    .print-meta-grid {
      width: 100% !important;
      border-collapse: collapse !important;
      margin-bottom: 9px !important;
      font-size: 7.2pt !important;
      border: 1px solid #cbd5e1 !important;
      border-radius: 4px !important;
      overflow: hidden !important;
      table-layout: fixed !important;
    }

    .print-meta-grid td {
      padding: 3.8px 7px !important;
      border: 0.5px solid #e2e8f0 !important;
      text-align: left !important;
      vertical-align: middle !important;
      line-height: 1.3 !important;
    }

    .print-meta-grid .meta-label {
      background-color: #f1f5f9 !important;
      color: #334155 !important;
      font-weight: 800 !important;
      font-size: 7.0pt !important;
      text-transform: uppercase !important;
      letter-spacing: 0.3px !important;
      white-space: nowrap !important;
      width: 17% !important;
    }

    .print-meta-grid .meta-val {
      background-color: #ffffff !important;
      color: #0f172a !important;
      font-weight: 700 !important;
      font-size: 7.6pt !important;
      width: 33% !important;
    }

    /* Executive Maritime Telemetry Row (Flexbox Enclosed - Anti-Border Drop) */
    .print-kpi-row {
      display: flex !important;
      width: 100% !important;
      border: 1.5px solid #0f2b48 !important;
      border-radius: 4px !important;
      background: #f8fafc !important;
      margin-bottom: 10px !important;
      box-sizing: border-box !important;
      overflow: hidden !important;
    }

    .print-kpi-col {
      flex: 1 !important;
      width: 25% !important;
      padding: 6px 5px !important;
      text-align: center !important;
      border: none !important;
      border-right: 1px solid #cbd5e1 !important;
      box-sizing: border-box !important;
    }

    .print-kpi-col:last-child {
      border-right: none !important;
    }

    .print-kpi-title {
      font-size: 6.8pt !important;
      font-weight: 800 !important;
      color: #334155 !important;
      text-transform: uppercase !important;
      letter-spacing: 0.4px !important;
      margin-bottom: 2px !important;
      line-height: 1.15 !important;
      white-space: nowrap !important;
      overflow: hidden !important;
      text-overflow: ellipsis !important;
    }

    .print-kpi-value {
      font-size: 12pt !important;
      font-weight: 900 !important;
      font-family: 'JetBrains Mono', Consolas, monospace !important;
      color: #0a2540;
      line-height: 1.2 !important;
      white-space: nowrap !important;
      overflow: hidden !important;
      text-overflow: ellipsis !important;
    }

    .print-kpi-sub {
      font-size: 6.6pt !important;
      font-weight: 700 !important;
      color: #0284c7 !important;
      margin-top: 2px !important;
      line-height: 1.15 !important;
      white-space: nowrap !important;
      overflow: hidden !important;
      text-overflow: ellipsis !important;
    }

    /* Fallback alias jika masih menggunakan table */
    .print-kpi-table {
      width: 100% !important;
      border-collapse: collapse !important;
      background: #f8fafc !important;
      border: 1.5px solid #0f2b48 !important;
      border-radius: 4px !important;
      overflow: hidden !important;
      margin-bottom: 10px !important;
      table-layout: fixed !important;
    }

    .print-kpi-card {
      width: 25% !important;
      background: #f8fafc !important;
      border: none !important;
      border-right: 1px solid #cbd5e1 !important;
      padding: 6px 5px !important;
      text-align: center !important;
      vertical-align: middle !important;
      box-sizing: border-box !important;
    }

    .print-kpi-card:last-child {
      border-right: none !important;
    }

    .print-section-title {
      font-size: 8.0pt !important;
      font-weight: 900 !important;
      text-transform: uppercase !important;
      letter-spacing: 0.4px !important;
      color: #0a2540 !important;
      margin: 9px 0 4px 0 !important;
      padding-bottom: 2.5px !important;
      border-bottom: 1.5px solid #0a2540 !important;
      display: flex !important;
      align-items: center !important;
      gap: 5px !important;
    }

    .print-section-title::before {
      content: "";
      display: inline-block;
      width: 3.5px;
      height: 9px;
      background: #0284c7;
      border-radius: 1px;
    }

    .print-data-table {
      width: 100% !important;
      border-collapse: collapse !important;
      margin-bottom: 8px !important;
      font-size: 7.2pt !important;
      border: 1px solid #cbd5e1 !important;
      border-radius: 3px !important;
      overflow: hidden !important;
    }

    .print-data-table th {
      background-color: #0a2540 !important;
      color: #ffffff !important;
      font-weight: 800 !important;
      text-align: left !important;
      text-transform: uppercase !important;
      font-size: 7.0pt !important;
      letter-spacing: 0.35px !important;
      padding: 3.5px 6px !important;
      border: none !important;
      border-bottom: 1.5px solid #0a2540 !important;
    }

    .print-data-table td {
      padding: 3.0px 6px !important;
      border: none !important;
      border-bottom: 1px solid #e2e8f0 !important;
      line-height: 1.3 !important;
      vertical-align: middle !important;
      color: #0f172a !important;
    }

    .print-data-table tr:last-child td {
      border-bottom: none !important;
    }

    .print-data-table tr:nth-child(even) td {
      background-color: #f8fafc !important;
    }

    /* Kotak Catatan Operasional & Sensor Anjungan (Solid Executive Panel) */
    .print-ops-note {
      margin-top: 8px !important;
      margin-bottom: 8px !important;
      padding: 5px 10px !important;
      background: #f8fafc !important;
      border: 1px solid #cbd5e1 !important;
      border-left: 3.5px solid #0284c7 !important;
      border-radius: 3px !important;
      font-size: 6.8pt !important;
      color: #1e293b !important;
      line-height: 1.5 !important;
    }

    .print-ops-title {
      font-weight: 900 !important;
      color: #0a2540 !important;
      text-transform: uppercase !important;
      margin-bottom: 3px !important;
      font-size: 7.2pt !important;
      letter-spacing: 0.4px !important;
    }

    .print-ops-item {
      margin-bottom: 2.5px !important;
      line-height: 1.45 !important;
    }

    .print-ops-item:last-child {
      margin-bottom: 0 !important;
    }

    .print-audit-bar {
      margin: 8px 0 9px 0 !important;
      padding: 3.5px 10px !important;
      background: #f0fdf4 !important;
      border: 1px solid #86efac !important;
      border-radius: 3px !important;
      display: flex !important;
      justify-content: space-between !important;
      align-items: center !important;
      font-size: 7.2pt !important;
    }

    /* 6. Tanda Tangan & Cap Resmi Nakhoda */
    .print-signature-section {
      width: 100% !important;
      margin-top: 8px !important;
      border-collapse: collapse !important;
      page-break-inside: avoid !important;
      break-inside: avoid !important;
    }

    .print-signature-section td {
      width: 33.33% !important;
      text-align: center !important;
      vertical-align: top !important;
    }

    .sig-role {
      font-weight: 900 !important;
      color: #0a2540 !important;
      font-size: 7.6pt !important;
      text-transform: uppercase !important;
      letter-spacing: 0.3px !important;
    }

    .sig-desc {
      font-size: 6.5pt !important;
      color: #475569 !important;
      margin-bottom: 2px !important;
    }

    .sig-space {
      height: 56px !important;
    }

    .sig-line {
      border-bottom: 1.2px solid #0a2540 !important;
      width: 78% !important;
      margin: 0 auto !important;
      padding-bottom: 2px !important;
      font-weight: 900 !important;
      color: #0a2540 !important;
      font-size: 8.0pt !important;
      min-height: 13px !important;
    }

    .sig-sub {
      font-size: 6.5pt !important;
      color: #334155 !important;
      font-weight: 600 !important;
      padding-top: 2px !important;
    }

    .print-footer-notice {
      margin-top: auto !important;
      padding-top: 3.5px !important;
      border-top: 1.2px solid #0a2540 !important;
      font-size: 6.2pt !important;
      font-weight: 700 !important;
      color: #334155 !important;
      display: flex !important;
      justify-content: space-between !important;
      font-family: 'JetBrains Mono', Consolas, monospace !important;
      line-height: 1 !important;
    }

    /* ==========================================================================
       DEDICATED BALANCED 1-PAGE STYLES FOR COMPASS ERROR REPORT (25-ROW REDUCTION)
       ========================================================================== */
    .module-compass {
      padding: 10px 14px 10px 14px !important;
      max-height: 288mm !important;
      box-sizing: border-box !important;
      page-break-inside: avoid !important;
      break-inside: avoid !important;
    }

    .module-compass .print-header-table {
      margin-bottom: 7px !important;
      border-bottom: 2px solid #0f2b48 !important;
    }

    .module-compass .print-header-table td {
      padding-top: 1px !important;
      padding-bottom: 8px !important;
    }

    .module-compass .print-crest-badge {
      width: 40px !important;
      height: 40px !important;
    }

    .module-compass .print-crest-svg {
      width: 24px !important;
      height: 24px !important;
    }

    .module-compass .print-doc-brand {
      font-size: 6pt !important;
      margin-bottom: 2px !important;
      line-height: 1.25 !important;
      letter-spacing: 1px !important;
    }

    .module-compass .print-doc-title {
      font-size: 11pt !important;
      margin: 0 0 3px 0 !important;
      line-height: 1.25 !important;
    }

    .module-compass .print-vessel-headline {
      font-size: 8.5pt !important;
      margin: 0 !important;
      line-height: 1.2 !important;
    }

    .module-compass .print-id-badge {
      padding: 4px 7px !important;
    }

    .module-compass .print-id-val {
      font-size: 9pt !important;
      margin-bottom: 2px !important;
    }

    .module-compass .print-meta-grid {
      margin-bottom: 7px !important;
    }

    .module-compass .print-meta-grid td {
      padding: 3px 7px !important;
      font-size: 6.5pt !important;
      line-height: 1.3 !important;
    }

    .module-compass .print-kpi-row {
      margin-bottom: 7px !important;
    }

    .module-compass .print-kpi-col {
      padding: 5px 5px !important;
    }

    .module-compass .print-kpi-title {
      font-size: 5.5pt !important;
      margin-bottom: 2px !important;
      letter-spacing: 0.4px !important;
    }

    .module-compass .print-kpi-value {
      font-size: 11pt !important;
      line-height: 1.2 !important;
    }

    .module-compass .print-kpi-sub {
      font-size: 5.4pt !important;
      margin-top: 2px !important;
    }

    .module-compass .print-section-title {
      font-size: 6.8pt !important;
      margin: 7px 0 3.5px 0 !important;
      padding-bottom: 2px !important;
      letter-spacing: 0.35px !important;
    }

    /* 1. Lembar Kerja Reduksi Manual - Line Spacing Rapi & Berjarak Proporsional */
    .module-compass .print-data-table {
      margin-bottom: 6px !important;
      font-size: 6.2pt !important;
    }

    .module-compass .print-data-table th {
      padding: 3px 5px !important;
      font-size: 6.2pt !important;
      letter-spacing: 0.3px !important;
    }

    .module-compass .print-data-table td {
      padding: 2.6px 5px !important;
      font-size: 6.3pt !important;
      line-height: 1.35 !important;
    }

    /* 2. Rekapitulasi Jurnal Kompas IMO */
    .module-compass .compass-logbook-table {
      margin-bottom: 6px !important;
    }

    .module-compass .compass-logbook-table th {
      padding: 2px 2px !important;
      font-size: 5.3pt !important;
    }

    .module-compass .compass-logbook-table td {
      padding: 2.6px 2px !important;
      font-size: 5.8pt !important;
      line-height: 1.25 !important;
    }

    /* Catatan Operasional & Sensor */
    .module-compass .print-ops-note {
      margin-top: 6px !important;
      margin-bottom: 6px !important;
      padding: 4.5px 9px !important;
      font-size: 5.8pt !important;
      line-height: 1.4 !important;
    }

    .module-compass .print-ops-title {
      font-size: 6pt !important;
      margin-bottom: 2px !important;
    }

    /* Bar Verifikasi Resmi */
    .module-compass .print-audit-bar {
      margin: 6px 0 7px 0 !important;
      padding: 3.5px 9px !important;
      font-size: 6.2pt !important;
    }

    /* Blok Tanda Tangan */
    .module-compass .print-signature-section {
      margin-top: 8px !important;
    }

    .module-compass .sig-role {
      font-size: 6.6pt !important;
    }

    .module-compass .sig-desc {
      font-size: 5.5pt !important;
      margin-bottom: 2px !important;
    }

    .module-compass .sig-space {
      height: 48px !important;
    }

    .module-compass .sig-line {
      font-size: 7.2pt !important;
      min-height: 13px !important;
      padding-bottom: 2px !important;
    }

    .module-compass .sig-sub {
      font-size: 5.6pt !important;
      padding-top: 2px !important;
    }

    /* Garis Footer */
    .module-compass .print-footer-notice {
      margin-top: auto !important;
      padding-top: 3px !important;
      font-size: 5.4pt !important;
    }

    /* ==========================================================================
       DEDICATED BALANCED 1-PAGE STYLES FOR TRUE WIND & BEAUFORT REPORT
       ========================================================================== */
    .module-wind {
      padding: 10px 14px 10px 14px !important;
      max-height: 288mm !important;
      box-sizing: border-box !important;
      page-break-inside: avoid !important;
      break-inside: avoid !important;
    }

    .module-wind .print-header-table {
      margin-bottom: 7px !important;
      border-bottom: 2px solid #0f2b48 !important;
    }

    .module-wind .print-header-table td {
      padding-top: 1px !important;
      padding-bottom: 8px !important;
    }

    .module-wind .print-crest-badge {
      width: 40px !important;
      height: 40px !important;
    }

    .module-wind .print-crest-svg {
      width: 24px !important;
      height: 24px !important;
    }

    .module-wind .print-doc-brand {
      font-size: 6pt !important;
      margin-bottom: 2px !important;
      line-height: 1.25 !important;
      letter-spacing: 1px !important;
    }

    .module-wind .print-doc-title {
      font-size: 11pt !important;
      margin: 0 0 3px 0 !important;
      line-height: 1.25 !important;
    }

    .module-wind .print-vessel-headline {
      font-size: 8.5pt !important;
      margin: 0 !important;
      line-height: 1.2 !important;
    }

    .module-wind .print-id-badge {
      padding: 4px 7px !important;
    }

    .module-wind .print-id-val {
      font-size: 9pt !important;
      margin-bottom: 2px !important;
    }

    .module-wind .print-meta-grid {
      margin-bottom: 7px !important;
    }

    .module-wind .print-meta-grid td {
      padding: 3px 7px !important;
      font-size: 6.5pt !important;
      line-height: 1.3 !important;
    }

    .module-wind .print-kpi-row {
      margin-bottom: 7px !important;
    }

    .module-wind .print-kpi-col {
      padding: 5px 5px !important;
    }

    .module-wind .print-kpi-title {
      font-size: 5.5pt !important;
      margin-bottom: 2px !important;
      letter-spacing: 0.4px !important;
    }

    .module-wind .print-kpi-value {
      font-size: 11pt !important;
      line-height: 1.2 !important;
    }

    .module-wind .print-kpi-sub {
      font-size: 5.4pt !important;
      margin-top: 2px !important;
    }

    .module-wind .print-section-title {
      font-size: 6.8pt !important;
      margin: 7px 0 3.5px 0 !important;
      padding-bottom: 2px !important;
      letter-spacing: 0.35px !important;
    }

    /* 1. Lembar Kerja Reduksi Manual - Line Spacing Rapi & Berjarak Proporsional */
    .module-wind .print-data-table {
      margin-bottom: 6px !important;
      font-size: 6.2pt !important;
    }

    .module-wind .print-data-table th {
      padding: 3px 5px !important;
      font-size: 6.2pt !important;
      letter-spacing: 0.3px !important;
    }

    .module-wind .print-data-table td {
      padding: 2.6px 5px !important;
      font-size: 6.3pt !important;
      line-height: 1.35 !important;
    }

    /* 2. Rekapitulasi Jurnal Anjungan */
    .module-wind .compass-logbook-table {
      margin-bottom: 6px !important;
    }

    .module-wind .compass-logbook-table th {
      padding: 2px 2px !important;
      font-size: 5.3pt !important;
    }

    .module-wind .compass-logbook-table td {
      padding: 2.6px 2px !important;
      font-size: 5.8pt !important;
      line-height: 1.25 !important;
    }

    /* Catatan Operasional & Sensor */
    .module-wind .print-ops-note {
      margin-top: 6px !important;
      margin-bottom: 6px !important;
      padding: 4.5px 9px !important;
      font-size: 5.8pt !important;
      line-height: 1.4 !important;
    }

    .module-wind .print-ops-title {
      font-size: 6pt !important;
      margin-bottom: 2px !important;
    }

    /* Bar Verifikasi Resmi */
    .module-wind .print-audit-bar {
      margin: 6px 0 7px 0 !important;
      padding: 3.5px 9px !important;
      font-size: 6.2pt !important;
    }

    /* Blok Tanda Tangan */
    .module-wind .print-signature-section {
      margin-top: 8px !important;
    }

    .module-wind .sig-role {
      font-size: 6.6pt !important;
    }

    .module-wind .sig-desc {
      font-size: 5.5pt !important;
      margin-bottom: 2px !important;
    }

    .module-wind .sig-space {
      height: 54px !important;
    }

    .module-wind .sig-line {
      font-size: 7.2pt !important;
      min-height: 13px !important;
      padding-bottom: 2px !important;
    }

    .module-wind .sig-sub {
      font-size: 5.6pt !important;
      padding-top: 2px !important;
    }

    /* Garis Footer */
    .module-wind .print-footer-notice {
      margin-top: auto !important;
      padding-top: 3px !important;
      font-size: 5.4pt !important;
    }

    /* ==========================================================================
       DEDICATED BALANCED 1-PAGE STYLES FOR DRAFT & TRIM REPORT
       ========================================================================== */
    .module-draft {
      padding: 10px 14px 10px 14px !important;
      max-height: 288mm !important;
      box-sizing: border-box !important;
      page-break-inside: avoid !important;
      break-inside: avoid !important;
    }

    .module-draft .print-header-table {
      margin-bottom: 7px !important;
      border-bottom: 2px solid #0f2b48 !important;
    }

    .module-draft .print-header-table td {
      padding-top: 1px !important;
      padding-bottom: 8px !important;
    }

    .module-draft .print-crest-badge {
      width: 40px !important;
      height: 40px !important;
    }

    .module-draft .print-crest-svg {
      width: 24px !important;
      height: 24px !important;
    }

    .module-draft .print-doc-brand {
      font-size: 6pt !important;
      margin-bottom: 2px !important;
      line-height: 1.25 !important;
      letter-spacing: 1px !important;
    }

    .module-draft .print-doc-title {
      font-size: 11pt !important;
      margin: 0 0 3px 0 !important;
      line-height: 1.25 !important;
    }

    .module-draft .print-vessel-headline {
      font-size: 8.5pt !important;
      margin: 0 !important;
      line-height: 1.2 !important;
    }

    .module-draft .print-id-badge {
      padding: 4px 7px !important;
    }

    .module-draft .print-id-val {
      font-size: 9pt !important;
      margin-bottom: 2px !important;
    }

    .module-draft .print-meta-grid {
      margin-bottom: 7px !important;
    }

    .module-draft .print-meta-grid td {
      padding: 3px 7px !important;
      font-size: 6.5pt !important;
      line-height: 1.3 !important;
    }

    .module-draft .print-kpi-row {
      margin-bottom: 7px !important;
    }

    .module-draft .print-kpi-col {
      padding: 5px 5px !important;
    }

    .module-draft .print-kpi-title {
      font-size: 5.5pt !important;
      margin-bottom: 2px !important;
      letter-spacing: 0.4px !important;
    }

    .module-draft .print-kpi-value {
      font-size: 11pt !important;
      line-height: 1.2 !important;
    }

    .module-draft .print-kpi-sub {
      font-size: 5.4pt !important;
      margin-top: 2px !important;
    }

    .module-draft .print-section-title {
      font-size: 6.8pt !important;
      margin: 7px 0 3.5px 0 !important;
      padding-bottom: 2px !important;
      letter-spacing: 0.35px !important;
    }

    /* 1. Lembar Kerja Reduksi Manual - Line Spacing Rapi & Berjarak Proporsional */
    .module-draft .print-data-table {
      margin-bottom: 6px !important;
      font-size: 6.2pt !important;
    }

    .module-draft .print-data-table th {
      padding: 3px 5px !important;
      font-size: 6.2pt !important;
      letter-spacing: 0.3px !important;
    }

    .module-draft .print-data-table td {
      padding: 2.6px 5px !important;
      font-size: 6.3pt !important;
      line-height: 1.35 !important;
    }

    /* 2. Rekapitulasi Jurnal Anjungan */
    .module-draft .compass-logbook-table {
      margin-bottom: 6px !important;
    }

    .module-draft .compass-logbook-table th {
      padding: 2px 2px !important;
      font-size: 5.3pt !important;
    }

    .module-draft .compass-logbook-table td {
      padding: 2.6px 2px !important;
      font-size: 5.8pt !important;
      line-height: 1.25 !important;
    }

    /* Catatan Operasional & Sensor */
    .module-draft .print-ops-note {
      margin-top: 6px !important;
      margin-bottom: 6px !important;
      padding: 4.5px 9px !important;
      font-size: 5.8pt !important;
      line-height: 1.4 !important;
    }

    .module-draft .print-ops-title {
      font-size: 6pt !important;
      margin-bottom: 2px !important;
    }

    /* Bar Verifikasi Resmi */
    .module-draft .print-audit-bar {
      margin: 6px 0 7px 0 !important;
      padding: 3.5px 9px !important;
      font-size: 6.2pt !important;
    }

    /* Blok Tanda Tangan */
    .module-draft .print-signature-section {
      margin-top: 8px !important;
    }

    .module-draft .sig-role {
      font-size: 6.6pt !important;
    }

    .module-draft .sig-desc {
      font-size: 5.5pt !important;
      margin-bottom: 2px !important;
    }

    .module-draft .sig-space {
      height: 54px !important;
    }

    .module-draft .sig-line {
      font-size: 7.2pt !important;
      min-height: 13px !important;
      padding-bottom: 2px !important;
    }

    .module-draft .sig-sub {
      font-size: 5.6pt !important;
      padding-top: 2px !important;
    }

    /* Garis Footer */
    .module-draft .print-footer-notice {
      margin-top: auto !important;
      padding-top: 3px !important;
      font-size: 5.4pt !important;
    }

    /* ==========================================================================
       DEDICATED BALANCED 1-PAGE STYLES FOR ETA & VOYAGE REPORT
       ========================================================================== */
    .module-eta,
    .module-voyage {
      padding: 10px 14px 10px 14px !important;
      max-height: 288mm !important;
      box-sizing: border-box !important;
      page-break-inside: avoid !important;
      break-inside: avoid !important;
    }

    .module-sun,
    .module-astro {
      padding: 8px 14px 6px 14px !important;
      max-height: 285mm !important;
      box-sizing: border-box !important;
      page-break-inside: avoid !important;
      break-inside: avoid !important;
    }

    .module-eta .print-header-table,
    .module-voyage .print-header-table {
      margin-bottom: 7px !important;
      border-bottom: 2px solid #0f2b48 !important;
    }

    .module-sun .print-header-table,
    .module-astro .print-header-table {
      margin-bottom: 5px !important;
      border-bottom: 2px solid #0f2b48 !important;
    }

    .module-eta .print-header-table td,
    .module-voyage .print-header-table td,
    .module-sun .print-header-table td,
    .module-astro .print-header-table td {
      padding-top: 1px !important;
      padding-bottom: 8px !important;
    }

    .module-eta .print-crest-badge,
    .module-voyage .print-crest-badge,
    .module-sun .print-crest-badge,
    .module-astro .print-crest-badge {
      width: 40px !important;
      height: 40px !important;
    }

    .module-eta .print-crest-svg,
    .module-voyage .print-crest-svg,
    .module-sun .print-crest-svg,
    .module-astro .print-crest-svg {
      width: 24px !important;
      height: 24px !important;
    }

    .module-eta .print-doc-brand,
    .module-voyage .print-doc-brand,
    .module-sun .print-doc-brand,
    .module-astro .print-doc-brand {
      font-size: 6pt !important;
      margin-bottom: 2px !important;
      line-height: 1.25 !important;
      letter-spacing: 1px !important;
    }

    .module-eta .print-doc-title,
    .module-voyage .print-doc-title,
    .module-sun .print-doc-title,
    .module-astro .print-doc-title {
      font-size: 11pt !important;
      margin: 0 0 3px 0 !important;
      line-height: 1.25 !important;
    }

    .module-eta .print-vessel-headline,
    .module-voyage .print-vessel-headline,
    .module-sun .print-vessel-headline,
    .module-astro .print-vessel-headline {
      font-size: 8.5pt !important;
      margin: 0 !important;
      line-height: 1.2 !important;
    }

    .module-eta .print-id-badge,
    .module-voyage .print-id-badge,
    .module-sun .print-id-badge,
    .module-astro .print-id-badge {
      padding: 4px 7px !important;
    }

    .module-eta .print-id-val,
    .module-voyage .print-id-val,
    .module-sun .print-id-val,
    .module-astro .print-id-val {
      font-size: 9pt !important;
      margin-bottom: 2px !important;
    }

    .module-eta .print-meta-grid,
    .module-voyage .print-meta-grid {
      margin-bottom: 7px !important;
    }

    .module-sun .print-meta-grid,
    .module-astro .print-meta-grid {
      margin-bottom: 5px !important;
    }

    .module-eta .print-meta-grid td,
    .module-voyage .print-meta-grid td,
    .module-sun .print-meta-grid td,
    .module-astro .print-meta-grid td {
      padding: 3px 7px !important;
      font-size: 6.5pt !important;
    }

    .module-eta .print-kpi-row,
    .module-voyage .print-kpi-row {
      margin-bottom: 8px !important;
      gap: 7px !important;
    }

    .module-sun .print-kpi-row,
    .module-astro .print-kpi-row {
      margin-bottom: 6px !important;
      gap: 7px !important;
    }

    .module-eta .print-kpi-col,
    .module-voyage .print-kpi-col,
    .module-sun .print-kpi-col,
    .module-astro .print-kpi-col {
      padding: 5px 8px !important;
    }

    .module-eta .print-kpi-title,
    .module-voyage .print-kpi-title,
    .module-sun .print-kpi-title,
    .module-astro .print-kpi-title {
      font-size: 5.6pt !important;
      letter-spacing: 0.5px !important;
      margin-bottom: 2px !important;
    }

    .module-eta .print-kpi-value,
    .module-voyage .print-kpi-value,
    .module-sun .print-kpi-value,
    .module-astro .print-kpi-value {
      font-size: 10.5pt !important;
      line-height: 1.2 !important;
    }

    .module-eta .print-kpi-sub,
    .module-voyage .print-kpi-sub,
    .module-sun .print-kpi-sub,
    .module-astro .print-kpi-sub {
      font-size: 5.4pt !important;
      margin-top: 2px !important;
    }

    .module-eta .print-section-title,
    .module-voyage .print-section-title,
    .module-sun .print-section-title,
    .module-astro .print-section-title {
      font-size: 8.0pt !important;
      margin-top: 6px !important;
      margin-bottom: 4px !important;
      padding-left: 6px !important;
      font-weight: 800 !important;
      color: #0f2b48 !important;
    }

    .module-eta .print-data-table,
    .module-voyage .print-data-table,
    .module-sun .print-data-table,
    .module-astro .print-data-table {
      margin-bottom: 6px !important;
      font-size: 7.5pt !important;
    }

    .module-eta .print-data-table th,
    .module-voyage .print-data-table th,
    .module-sun .print-data-table th,
    .module-astro .print-data-table th {
      padding: 4.0px 8px !important;
      font-size: 7.2pt !important;
      font-weight: 800 !important;
      color: #ffffff !important;
      background: #0f2b48 !important;
    }

    .module-eta .print-data-table td,
    .module-voyage .print-data-table td,
    .module-sun .print-data-table td,
    .module-astro .print-data-table td {
      padding: 3.2px 8px !important;
      line-height: 1.28 !important;
      font-size: 7.5pt !important;
    }

    .module-eta .print-ops-note,
    .module-voyage .print-ops-note,
    .module-sun .print-ops-note,
    .module-astro .print-ops-note {
      padding: 4px 8px !important;
      margin-top: 5px !important;
      margin-bottom: 5px !important;
    }

    .module-eta .print-ops-title,
    .module-voyage .print-ops-title,
    .module-sun .print-ops-title,
    .module-astro .print-ops-title {
      font-size: 6.4pt !important;
      margin-bottom: 1.5px !important;
    }

    .module-eta .print-audit-bar,
    .module-voyage .print-audit-bar,
    .module-sun .print-audit-bar,
    .module-astro .print-audit-bar {
      padding: 3.5px 8px !important;
      margin-bottom: 5px !important;
      font-size: 6.2pt !important;
    }

    .module-eta .print-signature-section,
    .module-voyage .print-signature-section,
    .module-sun .print-signature-section,
    .module-astro .print-signature-section {
      margin-top: 8px !important;
      padding-top: 2px !important;
    }

    .module-eta .sig-role,
    .module-voyage .sig-role,
    .module-sun .sig-role,
    .module-astro .sig-role {
      font-size: 7.4pt !important;
      font-weight: 800 !important;
      color: #0f2b48 !important;
      letter-spacing: 0.3px !important;
    }

    .module-eta .sig-desc,
    .module-voyage .sig-desc,
    .module-sun .sig-desc,
    .module-astro .sig-desc {
      font-size: 6.6pt !important;
      color: #475569 !important;
      font-weight: 600 !important;
      margin-top: 1px !important;
    }

    .module-eta .sig-space,
    .module-voyage .sig-space,
    .module-sun .sig-space,
    .module-astro .sig-space {
      height: 52px !important;
    }

    .module-eta .sig-line,
    .module-voyage .sig-line,
    .module-sun .sig-line,
    .module-astro .sig-line {
      font-size: 8.2pt !important;
      font-weight: 800 !important;
      color: #0f172a !important;
      border-bottom: 1.4px solid #0f2b48 !important;
      padding-bottom: 2px !important;
    }

    .module-eta .sig-sub,
    .module-voyage .sig-sub,
    .module-sun .sig-sub,
    .module-astro .sig-sub {
      font-size: 6.4pt !important;
      color: #475569 !important;
      margin-top: 2px !important;
    }

    .module-eta .print-footer-notice,
    .module-voyage .print-footer-notice,
    .module-sun .print-footer-notice,
    .module-astro .print-footer-notice {
      margin-top: auto !important;
      padding-top: 2px !important;
      font-size: 5.4pt !important;
    }




    /* Styling Lembar Manual Hitungan Compass Error */
    .compass-manual-table {
      width: 100% !important;
      border-collapse: collapse !important;
      font-size: 6.2pt !important;
      margin-bottom: 7px !important;
      border: 1px solid #cbd5e1 !important;
      border-radius: 3px !important;
      overflow: hidden !important;
    }

    .compass-manual-table th {
      background-color: #0f2b48 !important;
      color: #ffffff !important;
      font-weight: 800 !important;
      text-align: left !important;
      font-size: 6.2pt !important;
      padding: 3.5px 6px !important;
      border: none !important;
      letter-spacing: 0.3px !important;
    }

    .compass-manual-table td {
      padding: 2.2px 6px !important;
      border-bottom: 0.5px solid #e2e8f0 !important;
      vertical-align: middle !important;
      line-height: 1.25 !important;
      color: #0f172a !important;
    }

    .compass-manual-table tr:last-child td {
      border-bottom: none !important;
    }

    table.compass-logbook-table {
      width: 100% !important;
      max-width: 100% !important;
      table-layout: fixed !important;
      border-collapse: collapse !important;
      font-size: 5.8pt !important;
      margin-bottom: 6px !important;
      border: 1.5px solid #0f2b48 !important;
      border-radius: 3px !important;
      overflow: hidden !important;
      box-sizing: border-box !important;
    }

    table.compass-logbook-table th {
      box-sizing: border-box !important;
      padding: 3px 1px !important;
      text-align: center !important;
      vertical-align: middle !important;
      white-space: nowrap !important;
      overflow: hidden !important;
      font-size: 5.4pt !important;
      line-height: 1.15 !important;
    }

    table.compass-logbook-table th.logbook-major-th {
      background: #0f2b48 !important;
      color: #ffffff !important;
      font-size: 5.8pt !important;
      font-weight: 800 !important;
      letter-spacing: 0.35px !important;
      border-bottom: 0.5px solid #2a496b !important;
    }

    table.compass-logbook-table th.logbook-sub-th {
      background: #142e4d !important;
      color: #cbd5e1 !important;
      font-size: 5.1pt !important;
      font-weight: 800 !important;
      letter-spacing: 0.2px !important;
      border-bottom: 1.5px solid #0f2b48 !important;
    }

    table.compass-logbook-table td {
      box-sizing: border-box !important;
      padding: 4px 1px !important;
      text-align: center !important;
      vertical-align: middle !important;
      white-space: nowrap !important;
      overflow: hidden !important;
      font-family: 'JetBrains Mono', Consolas, monospace !important;
      font-size: 6.0pt !important;
      font-weight: 800 !important;
      line-height: 1.2 !important;
      border: 0.5px solid #cbd5e1 !important;
    }

    .compass-book-table {
      width: 100% !important;
      border-collapse: collapse !important;
      font-size: 6.4pt !important;
      margin-bottom: 6px !important;
      border: 1.2px solid #0f2b48 !important;
      border-radius: 3px !important;
      overflow: hidden !important;
    }

    .compass-book-table th {
      background-color: #0f2b48 !important;
      color: #ffffff !important;
      padding: 4px 6px !important;
      text-align: center !important;
      font-size: 6.5pt !important;
      font-weight: 800 !important;
      letter-spacing: 0.6px !important;
      border: none !important;
    }

    .compass-book-table td {
      padding: 3.2px 6px !important;
      border: 0.5px solid #cbd5e1 !important;
      font-size: 6.4pt !important;
      line-height: 1.35 !important;
      vertical-align: middle !important;
    }
  }

  /* ==============================================================================
   * PASSAGE PLAN (ROUTE) 20-COLUMN MARITIME TABLE & PRINT STYLES
   * IMO Resolution A.893(21) / SOLAS V Reg. 34 Compliance
   * Silky-Smooth 120Hz Hardware-Accelerated Momentum Scrolling
   * ============================================================================== */
  .passage-table-wrapper {
    overflow-x: auto !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-x pan-y !important;
    overscroll-behavior-x: contain !important;
    position: relative;
    border-radius: 1rem;
    border: 1px solid var(--color-outline-variant);
    background-color: var(--bg-container);
    width: 100% !important;
    max-width: 100% !important;
    scroll-behavior: smooth !important;
    transform: translateZ(0);
    will-change: scroll-position;
    -webkit-user-select: text;
    user-select: text;
  }

  .passage-table {
    width: 100%;
    min-width: 2400px;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 11px;
    font-family: 'JetBrains Mono', Consolas, monospace;
    touch-action: pan-x pan-y !important;
  }

  .passage-table th {
    background-color: var(--bg-container-highest);
    color: var(--color-on-surface);
    font-weight: 700;
    padding: 10px 12px;
    text-align: left;
    white-space: nowrap;
    border-bottom: 2px solid var(--color-outline-variant);
    border-right: 1px solid var(--color-outline-variant);
    text-transform: uppercase;
    font-size: 10px;
    letter-spacing: 0.5px;
    position: sticky;
    top: 0;
    z-index: 20;
    touch-action: pan-x pan-y !important;
  }

  .passage-table td {
    padding: 8px 12px;
    border-bottom: 1px solid var(--color-outline-variant);
    border-right: 1px solid var(--color-outline-variant);
    white-space: nowrap;
    color: var(--color-on-surface);
    background-color: var(--bg-container);
    touch-action: pan-x pan-y !important;
  }

  .passage-table tr:hover td {
    background-color: var(--bg-container-high) !important;
  }

  .passage-table .sticky-col-1,
  .passage-table th.sticky-col-1 {
    position: sticky;
    left: 0;
    width: 80px;
    min-width: 80px;
    max-width: 80px;
    box-sizing: border-box;
    z-index: 10;
    background-color: var(--bg-container-high) !important;
  }

  .passage-table th.sticky-col-1 {
    z-index: 30;
    background-color: var(--bg-container-highest) !important;
  }

  .passage-table .sticky-col-2,
  .passage-table th.sticky-col-2 {
    position: sticky;
    left: 80px;
    z-index: 10;
    min-width: 250px;
    box-sizing: border-box;
    background-color: var(--bg-container-high) !important;
    box-shadow: 2px 0 5px rgba(0, 0, 0, 0.15);
  }

  .passage-table th.sticky-col-2 {
    z-index: 30;
    background-color: var(--bg-container-highest) !important;
  }

  /* Responsif Mobile Portrait & iPad/Tablet (<=1024px): Cegah Sticky Col-2 Menutupi Layar */
  @media (max-width: 1024px) {

    .passage-table .sticky-col-1,
    .passage-table th.sticky-col-1 {
      width: 68px !important;
      min-width: 68px !important;
      max-width: 68px !important;
      padding: 8px 6px !important;
      font-size: 10px !important;
      position: sticky !important;
      left: 0 !important;
      z-index: 15 !important;
      border-right: 1px solid var(--color-outline-variant) !important;
    }

    .passage-table .sticky-col-2,
    .passage-table th.sticky-col-2 {
      position: static !important;
      left: auto !important;
      min-width: 180px !important;
      box-shadow: none !important;
      z-index: 1 !important;
    }
  }

  @media (max-width: 640px) {
    .passage-table .sticky-col-1,
    .passage-table th.sticky-col-1 {
      width: 52px !important;
      min-width: 52px !important;
      max-width: 52px !important;
      padding: 6px 3px !important;
      font-size: 10px !important;
      text-align: center !important;
      border-right: 1px solid var(--color-outline-variant) !important;
    }

    .passage-table .sticky-col-2,
    .passage-table th.sticky-col-2 {
      position: static !important;
      left: auto !important;
      width: 140px !important;
      min-width: 130px !important;
      max-width: 145px !important;
      padding: 6px 6px !important;
      box-shadow: none !important;
      z-index: 1 !important;
    }

    .passage-table td:nth-child(3),
    .passage-table th:nth-child(3) {
      min-width: 130px !important;
      max-width: 160px !important;
    }
  }

  @media print {

    /* ==========================================================================
       ADAPTIVE RESPONSIVE PRINT ENGINE FOR PASSAGE PLAN REPORT (SOLAS V & IMO A.893)
       Mendukung 1 Halaman (Rute Normal <=18 WPT) maupun Multi-Halaman (Rute Panjang >18 WPT)
       ========================================================================== */
    .module-passage {
      padding: 7px 12px 6px 12px !important;
      box-sizing: border-box !important;
      width: 100% !important;
      max-width: 194mm !important;
      margin: 0 auto !important;
    }

    /* Rute Standar (<=16 Waypoint): Pas 1 Halaman Penuh */
    .module-passage.passage-singlepage {
      display: flex !important;
      flex-direction: column !important;
      justify-content: space-between !important;
      min-height: 278mm !important;
      max-height: 288mm !important;
      page-break-inside: avoid !important;
      break-inside: avoid !important;
    }

    /* Rute Panjang (>16 Waypoint): Lembar Multi-Halaman Profesional Berimbang */
    .module-passage.passage-sheet {
      display: flex !important;
      flex-direction: column !important;
      justify-content: space-between !important;
      min-height: 268mm !important;
      max-height: 275mm !important;
      box-sizing: border-box !important;
      border: 2px solid #0f2b48 !important;
      padding: 5.0mm 6.5mm 4.0mm 6.5mm !important;
      margin: 0 auto !important;
      page-break-inside: avoid !important;
      break-inside: avoid !important;
    }

    .module-passage.passage-sheet .sheet-top-content {
      flex: 1 1 auto !important;
      display: flex !important;
      flex-direction: column !important;
    }

    .module-passage.passage-sheet:not(:last-child) {
      page-break-after: always !important;
      break-after: page !important;
    }

    .module-passage.passage-sheet:last-child {
      page-break-after: avoid !important;
      break-after: avoid !important;
    }

    .module-passage .passage-continuation-header {
      margin-bottom: 4px !important;
      border-bottom: 1.5px solid #0f2b48 !important;
    }

    .module-passage .print-header-table {
      margin-bottom: 5px !important;
      border-bottom: 2px solid #0f2b48 !important;
      page-break-inside: avoid !important;
      break-inside: avoid !important;
    }

    .module-passage .print-header-table td {
      padding-top: 1px !important;
      padding-bottom: 5px !important;
    }

    .module-passage .print-crest-badge {
      width: 38px !important;
      height: 38px !important;
    }

    .module-passage .print-crest-svg {
      width: 22px !important;
      height: 22px !important;
    }

    .module-passage .print-doc-brand {
      font-size: 5.8pt !important;
      margin-bottom: 1.5px !important;
      line-height: 1.2 !important;
      letter-spacing: 0.8px !important;
    }

    .module-passage .print-doc-title {
      font-size: 10.5pt !important;
      margin: 0 0 2px 0 !important;
      line-height: 1.2 !important;
    }

    .module-passage .print-vessel-headline {
      font-size: 8.2pt !important;
      margin: 0 !important;
      line-height: 1.2 !important;
    }

    .module-passage .print-id-badge {
      padding: 3px 6px !important;
    }

    .module-passage .print-id-val {
      font-size: 8.5pt !important;
      margin-bottom: 1px !important;
    }

    .module-passage .print-meta-grid {
      margin-bottom: 5px !important;
      page-break-inside: avoid !important;
      break-inside: avoid !important;
    }

    .module-passage .print-meta-grid td {
      padding: 2.2px 6px !important;
      font-size: 6.2pt !important;
      line-height: 1.25 !important;
    }

    .module-passage .print-kpi-row {
      margin-bottom: 5px !important;
      page-break-inside: avoid !important;
      break-inside: avoid !important;
    }

    .module-passage .print-kpi-col {
      padding: 3.5px 4px !important;
    }

    .module-passage .print-kpi-title {
      font-size: 5.2pt !important;
      margin-bottom: 1px !important;
      letter-spacing: 0.3px !important;
    }

    .module-passage .print-kpi-value {
      font-size: 9.8pt !important;
      line-height: 1.15 !important;
    }

    .module-passage .print-kpi-sub {
      font-size: 5.2pt !important;
      margin-top: 1px !important;
    }

    .module-passage .print-section-title {
      font-size: 6.6pt !important;
      margin: 4px 0 2.5px 0 !important;
      padding-bottom: 1.5px !important;
      letter-spacing: 0.3px !important;
      page-break-inside: avoid !important;
      break-inside: avoid !important;
    }

    .module-passage .passage-waypoints-table {
      width: 100% !important;
      border-collapse: collapse !important;
      margin-bottom: 5px !important;
      table-layout: fixed !important;
      border: 1px solid #cbd5e1 !important;
      border-radius: 3px !important;
      page-break-inside: auto !important;
      break-inside: auto !important;
    }

    .module-passage .passage-waypoints-table thead {
      display: table-header-group !important;
    }

    .module-passage .passage-waypoints-table tbody tr {
      page-break-inside: avoid !important;
      break-inside: avoid !important;
    }

    .module-passage .passage-waypoints-table th {
      background-color: #0f2b48 !important;
      color: #ffffff !important;
      font-weight: 800 !important;
      text-transform: uppercase !important;
      font-size: 4.8pt !important;
      letter-spacing: 0.25px !important;
      padding: 2.2px 2px !important;
      border: 0.5px solid #334155 !important;
      text-align: center !important;
      line-height: 1.15 !important;
    }

    .module-passage .passage-waypoints-table td {
      padding: 1.6px 2.5px !important;
      border: 0.5px solid #cbd5e1 !important;
      font-size: 4.6pt !important;
      line-height: 1.16 !important;
      vertical-align: middle !important;
      color: #0f172a !important;
      word-wrap: break-word !important;
      overflow-wrap: break-word !important;
    }

    .module-passage .passage-waypoints-table tr:nth-child(even) td {
      background-color: #f8fafc !important;
    }

    /* Blok Penutup Audit & Tanda Tangan: Utuh Bersama Tanpa Terpotong */
    .module-passage .passage-closing-block {
      page-break-inside: avoid !important;
      break-inside: avoid !important;
      margin-top: 5px !important;
    }

    .module-passage.passage-singlepage .passage-closing-block {
      margin-top: auto !important;
    }

    .module-passage .print-ops-note {
      padding: 3px 7px !important;
      margin-top: 3px !important;
      margin-bottom: 3.5px !important;
    }

    .module-passage .print-ops-title {
      font-size: 5.8pt !important;
      margin-bottom: 1px !important;
    }

    .module-passage .print-ops-text {
      font-size: 5.2pt !important;
      line-height: 1.35 !important;
    }

    .module-passage .print-audit-bar {
      padding: 2.2px 7px !important;
      margin-top: 2px !important;
      margin-bottom: 3.5px !important;
      font-size: 5.6pt !important;
    }

    .module-passage .print-signature-section {
      margin-top: 3px !important;
      page-break-inside: avoid !important;
      break-inside: avoid !important;
    }

    .module-passage .sig-role {
      font-size: 6.4pt !important;
      font-weight: 800 !important;
      color: #0f2b48 !important;
    }

    .module-passage .sig-desc {
      font-size: 5.2pt !important;
      color: #475569 !important;
      margin-bottom: 1px !important;
    }

    .module-passage .sig-space {
      height: 48px !important;
    }

    .module-passage .sig-line {
      font-size: 7.0pt !important;
      font-weight: 800 !important;
      color: #0f172a !important;
      border-bottom: 1.2px solid #0f2b48 !important;
      padding-bottom: 1.5px !important;
    }

    .module-passage .sig-sub {
      font-size: 5.4pt !important;
      color: #475569 !important;
      margin-top: 1px !important;
    }

    .module-passage .print-footer-notice {
      padding-top: 2px !important;
      font-size: 5.0pt !important;
      page-break-inside: avoid !important;
      break-inside: avoid !important;
    }
  }

  /* ==============================================================================
   * MASTER ADAPTIVE RESPONSIVE SYSTEM (LANDSCAPE, IPAD/TABLET & MOBILE PORTRAIT)
   * High-Performance Nautical Ergonomics (ISO 8468, SOLAS V & Apple HIG Standard)
   * Tailored for MT. SUNRISE WARRIOR Tactical Bridge Console
   * ============================================================================== */

  /* ------------------------------------------------------------------------------
   * 1. DESKTOP & TABLET SIDEBAR RAIL & SMOOTH ACCORDION
   * ------------------------------------------------------------------------------ */
  #appSidebar {
    transition: width 0.3s cubic-bezier(0.16, 1, 0.3, 1), transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: width, transform;
  }

  #appSidebar.sidebar-collapsed {
    width: 4.75rem !important; /* 76px compact rail for iPad & widescreen */
  }

  #appSidebar.sidebar-collapsed .sidebar-label,
  #appSidebar.sidebar-collapsed .sidebar-heading,
  #appSidebar.sidebar-collapsed #sidebarFooter {
    display: none !important;
  }

  #appSidebar.sidebar-collapsed .sidebar-btn {
    justify-content: center !important;
    padding-left: 0.5rem !important;
    padding-right: 0.5rem !important;
    position: relative;
  }

  #appSidebar.sidebar-collapsed .sidebar-btn span.material-symbols-outlined {
    font-size: 1.45rem !important;
  }

  /* Active Indicator Pill on Collapsed Sidebar Rail */
  #appSidebar.sidebar-collapsed .sidebar-btn.bg-primary-container::before {
    content: '';
    position: absolute;
    left: 0;
    top: 18%;
    bottom: 18%;
    width: 3.5px;
    border-radius: 0 4px 4px 0;
    background: var(--color-primary);
    box-shadow: 0 0 10px var(--color-primary);
  }

  /* ------------------------------------------------------------------------------
   * 2. LANDSCAPE ERGONOMICS (SMARTPHONES & COMPACT TABLETS IN LANDSCAPE)
   * Optimized for horizontal watch ergonomics, ECDIS conning, and tight vertical height
   * ------------------------------------------------------------------------------ */
  @media (orientation: landscape) and (max-height: 540px), (orientation: landscape) and (max-width: 950px) and (max-height: 600px) {
    /* A. Compact Conning Header */
    header {
      height: 2.875rem !important; /* 46px */
      padding-top: max(env(safe-area-inset-top, 0px), 0.25rem) !important;
      padding-bottom: 0.25rem !important;
      padding-left: max(env(safe-area-inset-left, 0px), 0.75rem) !important;
      padding-right: max(env(safe-area-inset-right, 0px), 0.75rem) !important;
    }

    /* Logo & Title compact in landscape */
    header .w-9.h-9,
    header .sm\:w-10.sm\:h-10 {
      width: 1.875rem !important;
      height: 1.875rem !important;
      border-radius: 0.5rem !important;
    }
    header .w-9.h-9 span,
    header .sm\:w-10.sm\:h-10 span {
      font-size: 1.125rem !important;
    }

    /* Compact Conning Clocks */
    #clockUtcCompact, #clockLtCompact {
      font-size: 0.75rem !important;
    }

    /* B. Main Layout Vertical Alignment */
    #appContainer > .flex-1 {
      padding-top: calc(2.875rem + max(env(safe-area-inset-top, 0px), 0px)) !important;
      padding-bottom: 0 !important;
    }

    #mainViewport {
      padding-top: 0.75rem !important;
      padding-bottom: calc(3.25rem + max(env(safe-area-inset-bottom, 0px), 0px)) !important;
      padding-left: max(env(safe-area-inset-left, 0px), 1rem) !important;
      padding-right: max(env(safe-area-inset-right, 0px), 1rem) !important;
    }

    /* C. Ultra-Compact Bottom Navigation in Phone Landscape */
    #mobileBottomNav {
      min-height: calc(2.625rem + max(env(safe-area-inset-bottom, 0px), 0px)) !important;
      height: calc(2.625rem + max(env(safe-area-inset-bottom, 0px), 0px)) !important;
      padding-top: 0.125rem !important;
      padding-bottom: max(env(safe-area-inset-bottom, 0px), 0.125rem) !important;
      padding-left: max(env(safe-area-inset-left, 0px), 1rem) !important;
      padding-right: max(env(safe-area-inset-right, 0px), 1rem) !important;
    }

    .mobile-nav-btn {
      min-height: 2.25rem !important;
      padding-top: 0.125rem !important;
      padding-bottom: 0.125rem !important;
    }

    .mobile-nav-btn span.material-symbols-outlined {
      font-size: 1.25rem !important;
    }

    .mobile-nav-btn span:not(.material-symbols-outlined) {
      font-size: 0.625rem !important; /* 10px */
      margin-top: 0 !important;
    }

    /* D. Modals in Landscape (Preventing Top/Bottom Overflow) */
    #loginModal,
    #resultModal,
    #chartDetailModal,
    #pushidrosalMasterCatalogModal,
    #forgotPasswordModal,
    #cbModal,
    #deleteConfirmModal,
    #bugAttachmentModal {
      padding: 0.5rem max(env(safe-area-inset-right, 0px), 0.75rem) 0.5rem max(env(safe-area-inset-left, 0px), 0.75rem) !important;
      align-items: center !important;
    }

    #loginModal > div,
    #resultModal > div,
    #chartDetailModal > div,
    #pushidrosalMasterCatalogModal > div,
    #forgotPasswordModal > div,
    #cbModal > div,
    #deleteConfirmModal > div,
    #bugAttachmentModal > div {
      max-height: 96vh !important;
      border-radius: 1rem !important;
      margin: auto !important;
    }

    /* Internal modal scroll containers */
    #resultModalBody,
    #chartDetailModalBody,
    #catalogTableBody,
    #loginForm {
      max-height: calc(96vh - 5.5rem) !important;
      overflow-y: auto !important;
      -webkit-overflow-scrolling: touch !important;
    }

    /* Login modal compact landscape */
    #loginModal .p-6 {
      padding: 0.75rem 1rem !important;
    }

    #loginModal .w-14.h-14 {
      width: 2.25rem !important;
      height: 2.25rem !important;
      margin-bottom: 0.25rem !important;
    }

    #loginModal .w-14.h-14 span {
      font-size: 1.25rem !important;
    }

    /* E. Bottom Sheets in Phone Landscape (Transform into ergonomic side-by-side dock) */
    #calcBottomSheetContent,
    #mobileMenuDrawerContent {
      max-height: 88vh !important;
      padding: 0.75rem 1.25rem calc(max(env(safe-area-inset-bottom, 0px), 0.5rem) + 1rem) !important;
      padding-left: max(env(safe-area-inset-left, 0px), 1.25rem) !important;
      padding-right: max(env(safe-area-inset-right, 0px), 1.25rem) !important;
    }

    #calcBottomSheetContent .grid {
      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
      gap: 0.625rem !important;
    }

    #calcBottomSheetContent .grid > div {
      padding: 0.625rem 0.75rem !important;
    }

    #mobileMenuDrawerContent .grid {
      gap: 0.5rem !important;
    }

    /* F. Form & Card Spacing in Landscape */
    .conning-card,
    .tactical-card {
      padding: 0.875rem !important;
    }

    input, select, textarea {
      min-height: 2.375rem !important; /* 38px in landscape */
      padding-top: 0.375rem !important;
      padding-bottom: 0.375rem !important;
    }
  }

  /* ------------------------------------------------------------------------------
   * 3. IPAD & TABLET ERGONOMICS (768px - 1024px: IPAD MINI, 10.2, AIR, PRO 11")
   * Furuno/ECDIS Maritime Workstation Aesthetics & Smooth Touch Response
   * ------------------------------------------------------------------------------ */
  @media (min-width: 768px) and (max-width: 1024px) {
    /* A. Header Balancing on iPad */
    header {
      height: 3.75rem !important; /* 60px */
      padding-left: 1rem !important;
      padding-right: 1rem !important;
    }

    /* Top Clocks & Badges */
    #clockUtcCompact, #clockLtCompact {
      font-size: 0.8125rem !important; /* 13px */
    }

    /* B. Main Viewport on iPad */
    #mainViewport {
      padding: 1.25rem 1.25rem 3.5rem 1.25rem !important;
      max-width: 100% !important;
    }

    /* C. Sidebar Rail on iPad: Compact 76px Conning Column with Micro-Labels */
    #appSidebar.sidebar-collapsed {
      width: 4.875rem !important; /* 78px */
    }

    #appSidebar.sidebar-collapsed .sidebar-btn {
      flex-direction: column !important;
      gap: 3px !important;
      padding: 7px 4px !important;
      justify-content: center !important;
      align-items: center !important;
    }

    #appSidebar.sidebar-collapsed .sidebar-label {
      display: block !important;
      font-size: 8.5px !important;
      font-weight: 600 !important;
      text-transform: uppercase !important;
      letter-spacing: 0.3px !important;
      text-align: center !important;
      max-width: 100% !important;
      overflow: hidden !important;
      text-overflow: ellipsis !important;
      white-space: nowrap !important;
      opacity: 0.85 !important;
    }

    #appSidebar.sidebar-collapsed .sidebar-heading,
    #appSidebar.sidebar-collapsed #sidebarFooter {
      display: none !important;
    }

    /* D. Card Grids & Layout on iPad */
    .grid-cols-1.md\:grid-cols-2 {
      gap: 1.125rem !important;
    }

    /* Touch targets minimum 44px (ISO 8468 Maritime) */
    button, input, select, .sidebar-btn {
      min-height: 44px !important;
    }

    /* Modals on iPad */
    #resultModal > div,
    #chartDetailModal > div,
    #pushidrosalMasterCatalogModal > div {
      max-height: 88vh !important;
      width: 90vw !important;
      max-width: 720px !important;
    }
  }

  /* ------------------------------------------------------------------------------
   * 4. MOBILE PORTRAIT SILK-SMOOTH ERGONOMICS (<768px: 320px - 480px)
   * Native App Feel, Apple Spring Curves & Wave-Motion Thumb Zone
   * ------------------------------------------------------------------------------ */
  @media (max-width: 767px) {
    /* A. Smooth Native Scrolling & Zero Horizontal Shake */
    html, body {
      overflow-x: hidden !important;
      overflow-y: auto !important;
      width: 100% !important;
      max-width: 100vw !important;
      min-height: 100% !important;
      -webkit-overflow-scrolling: touch !important;
      scroll-behavior: smooth !important;
      touch-action: manipulation;
    }

    #appContainer {
      width: 100% !important;
      max-width: 100vw !important;
      overflow-x: hidden !important;
    }

    #mainViewport {
      width: 100% !important;
      max-width: 100vw !important;
      padding: 0.875rem 0.75rem calc(5.5rem + max(env(safe-area-inset-bottom, 0px), 18px)) 0.75rem !important;
      overflow-x: hidden !important;
      -webkit-overflow-scrolling: touch !important;
    }

    /* B. Bottom Navigation Bar Luxury Polish (Ergonomis Jempol, Anti-Mepet & Label Nyaman) */
    #mobileBottomNav {
      position: fixed !important;
      bottom: 0 !important;
      left: 0 !important;
      right: 0 !important;
      height: auto !important;
      min-height: calc(54px + max(env(safe-area-inset-bottom, 0px), 18px)) !important;
      max-height: none !important;
      padding-top: 6px !important;
      padding-bottom: max(env(safe-area-inset-bottom, 0px), 18px) !important;
      padding-left: 6px !important;
      padding-right: 6px !important;
      box-sizing: border-box !important;
      background: var(--bg-container-low);
      backdrop-filter: blur(20px) saturate(180%);
      -webkit-backdrop-filter: blur(20px) saturate(180%);
      border-top: 1px solid var(--color-outline-variant);
      box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.45);
      z-index: 50 !important;
      transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.22s ease !important;
    }

    .mobile-nav-btn {
      height: 48px !important;
      min-height: 48px !important;
      max-height: 48px !important;
      padding: 2px 0 !important;
      margin: 0 !important;
      display: flex !important;
      flex-direction: column !important;
      align-items: center !important;
      justify-content: center !important;
      position: relative !important;
      flex: 1 1 0% !important;
      box-sizing: border-box !important;
      transition: color 0.2s ease, transform 0.15s ease;
    }

    .mobile-nav-btn:active {
      transform: scale(0.92);
    }

    .mobile-nav-btn span.material-symbols-outlined {
      font-size: 22px !important;
      line-height: 1 !important;
      margin-bottom: 2px !important;
      transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
    }

    .mobile-nav-btn.text-primary span.material-symbols-outlined {
      filter: drop-shadow(0 0 6px rgba(56, 189, 248, 0.6));
    }

    .mobile-nav-btn span:not(.material-symbols-outlined) {
      font-size: 10.5px !important;
      font-weight: 700 !important;
      line-height: 1.1 !important;
      margin-top: 1px !important;
      display: block !important;
      letter-spacing: -0.01em !important;
    }

    .mobile-nav-btn.text-primary::before {
      content: '';
      position: absolute;
      top: -6px;
      left: 50%;
      transform: translateX(-50%);
      width: 22px;
      height: 3px;
      background: var(--color-primary);
      border-radius: 9999px;
      box-shadow: 0 0 8px var(--color-primary);
    }

    /* C. Bottom Sheets (Modul Kalkulator & Menu Anjungan) */
    #calcBottomSheetContent,
    #mobileMenuDrawerContent {
      max-height: 84vh !important;
      border-top-left-radius: 1.75rem !important; /* 28px */
      border-top-right-radius: 1.75rem !important;
      background: var(--bg-container);
      backdrop-filter: blur(24px) saturate(180%);
      -webkit-backdrop-filter: blur(24px) saturate(180%);
      border-top: 1px solid var(--color-outline-variant);
      box-shadow: 0 -12px 36px rgba(0, 0, 0, 0.5);
      padding: 1.25rem 1rem calc(max(env(safe-area-inset-bottom, 0px), 16px) + 2rem) 1rem !important;
      transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.2s ease !important;
      -webkit-overflow-scrolling: touch !important;
      overscroll-behavior-y: contain !important;
      touch-action: pan-y !important;
    }

    /* Drag Handle */
    #calcBottomSheetContent > div:first-child,
    #mobileMenuDrawerContent > div:first-child {
      width: 3.25rem !important;
      height: 0.3125rem !important; /* 5px */
      border-radius: 9999px !important;
      background-color: var(--color-outline-variant) !important;
      opacity: 0.8;
      margin: 0 auto 1.25rem auto !important;
    }

    /* Bottom sheet cards tactile feedback & instant mobile touch responsiveness */
    #calcBottomSheetContent .grid > button,
    #calcBottomSheetContent .grid > div,
    .calc-module-card {
      min-height: 3.75rem !important;
      transition: transform 0.15s ease, background-color 0.15s ease;
      touch-action: manipulation !important;
      -webkit-tap-highlight-color: transparent !important;
      user-select: none !important;
      -webkit-user-select: none !important;
    }
    #calcBottomSheetContent .grid > button:active,
    #calcBottomSheetContent .grid > div:active,
    .calc-module-card:active {
      transform: scale(0.97) !important;
    }

    /* D. Modal Hasil (Result Modal) as Sleek Bottom Sheet on Mobile */
    #resultModal {
      align-items: flex-end !important;
      padding: 0 !important;
    }

    #resultModal > div {
      max-height: 92vh !important;
      border-radius: 1.75rem 1.75rem 0 0 !important;
      border-bottom: none !important;
      padding: 1.25rem 1rem calc(max(env(safe-area-inset-bottom, 0px), 12px) + 1rem) 1rem !important;
      margin: 0 !important;
      width: 100% !important;
      max-width: 100vw !important;
    }

    #resultModalBody {
      max-height: 62vh !important;
      overflow-y: auto !important;
      -webkit-overflow-scrolling: touch !important;
    }

    /* Form Inputs (Font-size 16px to prevent iOS auto-zoom shift) */
    input, select, textarea {
      font-size: 16px !important;
      min-height: 44px !important;
    }

    /* Smooth scroll container hints */
    .table-responsive-wrapper {
      position: relative;
      width: 100%;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
  }

  /* ------------------------------------------------------------------------------
   * 5. UNIVERSAL LUXURY MOTION, ELEVATION & TACTILE FEEDBACK
   * ------------------------------------------------------------------------------ */
  .conning-card,
  .tactical-card {
    background: var(--bg-container);
    border: 1px solid var(--color-outline-variant);
    border-radius: 1rem;
    transition: transform 0.22s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.22s cubic-bezier(0.16, 1, 0.3, 1), border-color 0.2s ease;
    will-change: transform, box-shadow;
  }

  @media (hover: hover) and (pointer: fine) {
    .conning-card:hover,
    .tactical-card:hover {
      transform: translateY(-2px);
      border-color: rgba(56, 189, 248, 0.4);
      box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.35);
    }
  }

  /* Tactile Active feedback on touch screens */
  button:active:not(:disabled),
  .tactile-btn:active {
    transform: scale(0.97);
    transition: transform 0.1s cubic-bezier(0.16, 1, 0.3, 1);
  }

  /* Smooth Focus Ring on Inputs */
  input:focus,
  select:focus,
  textarea:focus {
    outline: none !important;
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.2) !important;
  }

  /* Custom Maritime Scrollbars */
  ::-webkit-scrollbar {
    width: 6px;
    height: 6px;
  }

  ::-webkit-scrollbar-track {
    background: var(--bg-surface-dim);
    border-radius: 3px;
  }

  ::-webkit-scrollbar-thumb {
    background: var(--color-outline-variant);
    border-radius: 3px;
    transition: background 0.2s ease;
  }

  ::-webkit-scrollbar-thumb:hover {
    background: var(--color-primary);
  }

  /* ------------------------------------------------------------------------------
   * 6. HARMONISASI TIPOGRAFI ANJUNGAN (Standar ISO 8468 Ergonomic Scale)
   * ------------------------------------------------------------------------------ */
  .text-\[9px\],
  .text-\[10px\],
  .text-\[11px\] {
    font-size: 0.75rem !important; /* 12px standar */
    line-height: 1.35 !important;
  }

  #resultModal .text-3xl,
  #resultModal .text-2xl,
  #resultModal .text-xl {
    font-size: 1.125rem !important; /* 18px */
    line-height: 1.3 !important;
  }

  #resultModal .text-lg {
    font-size: 1rem !important; /* 16px */
  }

  @media (min-width: 768px) {
    input,
    select,
    textarea {
      font-size: 0.875rem !important; /* 14px clean desktop input */
    }
  }

  /* ==============================================================================
   * SMOOTH MOBILE SCREEN SWIPE & VIEW TRANSITION ANIMATIONS
   * Transisi Geser Halus Antar Tab Anjungan (iOS/Android Native Feel)
   * ============================================================================== */
  @keyframes slideInFromRight {
    from {
      opacity: 0.35;
      transform: translate3d(24px, 0, 0);
    }
    to {
      opacity: 1;
      transform: translate3d(0, 0, 0);
    }
  }

  @keyframes slideInFromLeft {
    from {
      opacity: 0.35;
      transform: translate3d(-24px, 0, 0);
    }
    to {
      opacity: 1;
      transform: translate3d(0, 0, 0);
    }
  }

  @keyframes viewFadeIn {
    from {
      opacity: 0.25;
      transform: translate3d(0, 10px, 0);
    }
    to {
      opacity: 1;
      transform: translate3d(0, 0, 0);
    }
  }

  @keyframes wptAccordionOpen {
    from {
      opacity: 0;
      transform: translate3d(0, -8px, 0);
    }
    to {
      opacity: 1;
      transform: translate3d(0, 0, 0);
    }
  }

  .view-slide-right {
    animation: slideInFromRight 0.24s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    will-change: transform, opacity;
  }

  .view-slide-left {
    animation: slideInFromLeft 0.24s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    will-change: transform, opacity;
  }

  .view-fade-in {
    animation: viewFadeIn 0.22s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    will-change: transform, opacity;
  }

  .wpt-card-expanded {
    animation: wptAccordionOpen 0.22s cubic-bezier(0.16, 1, 0.3, 1) forwards;
    will-change: transform, opacity;
  }

  /* Universal Tactile Micro-Interactions (Smooth Click/Tap Physics) */
  button:active,
  .sidebar-btn:active,
  .mobile-nav-btn:active,
  .conning-card:active {
    transform: scale(0.965) translateZ(0);
    transition: transform 0.08s cubic-bezier(0.16, 1, 0.3, 1) !important;
  }

  /* Silky-Smooth Inertial Scrolling for All Horizontal Data Containers */
  .smooth-scroll-x,
  .table-responsive,
  .overflow-x-auto {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-behavior: smooth !important;
    overscroll-behavior-x: contain !important;
    touch-action: pan-x pan-y !important;
    transform: translateZ(0);
    will-change: scroll-position;
  }

  /* Hardware-Accelerated Smooth Sticky Columns */
  .passage-table .sticky-col-1,
  .passage-table .sticky-col-2 {
    transform: translateZ(0);
    will-change: transform;
  }

  @media (prefers-reduced-motion: reduce) {
    *, ::before, ::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      transition-duration: 0.01ms !important;
      scroll-behavior: auto !important;
    }
  }

