:root{
  --clay:#B85C3D;--clay-d:#8a4129;--clay-l:#d4795c;
  --teal:#1A4D52;--teal-l:#2a6b72;
  --cream:#F4ECE2;--sand:#f9f4ee;
  --ink:#262321;--muted:#8a7e75;
  --border:rgba(38,35,33,0.11);--bord2:rgba(38,35,33,0.07);
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Inter',sans-serif;
  --r:4px;--rl:8px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;font-family:'Inter',sans-serif}
#login-screen{min-height:100vh;width:100%;background:#1A4D52;display:flex;align-items:center;justify-content:center;padding:2rem;transition:background 0.3s ease}
/* Role-based visibility */
#app.role-staff .owner-only{display:none!important}
#app.role-owner .staff-only{display:none!important}
.lb{background:#FDFAF6;padding:3rem 2.8rem;border-radius:8px;width:100%;max-width:380px}
.lb-logo{text-align:center;margin-bottom:2.5rem}
.lb-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.6rem;letter-spacing:0.22em;color:#262321;text-transform:uppercase}
.lb-sub{font-size:0.58rem;letter-spacing:0.42em;color:#8a7e75;text-transform:uppercase;margin-top:4px}
.lb-role{display:inline-block;margin-top:0.7rem;font-size:0.62rem;letter-spacing:0.15em;text-transform:uppercase;padding:0.25rem 0.8rem;background:rgba(26,77,82,0.1);color:#1A4D52;border-radius:2px}
.lb-roles{display:inline-flex;background:rgba(38,35,33,0.05);border-radius:20px;padding:4px;margin-top:1.2rem}
.lb-role-btn{font-size:0.65rem;letter-spacing:0.12em;text-transform:uppercase;padding:0.4rem 1.2rem;border-radius:16px;border:none;background:transparent;color:#8a7e75;cursor:pointer;transition:all 0.3s cubic-bezier(0.4,0,0.2,1);font-weight:500}
.lb-role-btn:hover{color:#262321}
.lb-role-btn.active{background:#1A4D52;color:#fff;box-shadow:0 4px 12px rgba(26,77,82,0.3)}
.lb-role-btn.active-owner{background:#B85C3D;color:#fff;box-shadow:0 4px 12px rgba(184,92,61,0.3)}
.lb-title{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.1rem;font-weight:400;text-align:center;color:#8a7e75;margin-bottom:1.6rem;margin-top:1rem;letter-spacing:0.02em}
.li{width:100%;font-family:'Inter',sans-serif;font-size:0.88rem;color:#262321;background:#F4ECE2;border:0.5px solid rgba(38,35,33,0.11);padding:0.88rem 1rem;border-radius:4px;margin-bottom:0.9rem;outline:none;transition:border-color 0.2s}
.li:focus{border-color:#1A4D52}
.btn-li{width:100%;font-family:'Inter',sans-serif;font-size:0.78rem;letter-spacing:0.18em;text-transform:uppercase;background:#1A4D52;color:#fff;border:none;padding:1rem;cursor:pointer;border-radius:4px;transition:background 0.2s;margin-top:0.3rem}
.btn-li:hover{background:#2a6b72}
.lerr{font-size:0.78rem;color:#B85C3D;text-align:center;margin-top:0.8rem;display:none}
#app{display:none;height:100vh;overflow:hidden;background:#f9f4ee}
#app.show{display:grid;grid-template-columns:220px 1fr}
.sb{background:#262321;display:flex;flex-direction:column;height:100vh;overflow-y:auto}
.sb-top{padding:2rem 1.5rem 1.5rem;border-bottom:0.5px solid rgba(244,236,226,0.07);margin-bottom:1rem}
.sb-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.05rem;letter-spacing:0.2em;color:#F4ECE2;text-transform:uppercase}
.sb-sub{font-size:0.55rem;letter-spacing:0.38em;color:rgba(244,236,226,0.25);text-transform:uppercase;margin-top:3px}
.sb-tag{display:inline-block;margin-top:0.6rem;font-size:0.6rem;letter-spacing:0.12em;text-transform:uppercase;padding:0.2rem 0.6rem;background:rgba(184,92,61,0.2);color:rgba(184,92,61,0.8);border-radius:2px}
.sb-menu{list-style:none;flex:1;padding:0 0 1rem}
.sb-menu li a{display:flex;align-items:center;gap:0.7rem;padding:0.82rem 1.5rem;font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:rgba(244,236,226,0.38);text-decoration:none;cursor:pointer;border-left:2px solid transparent;transition:all 0.2s}
.sb-menu li a:hover{color:rgba(244,236,226,0.75);background:rgba(244,236,226,0.03)}
.sb-menu li a.on{color:#F4ECE2;border-left-color:#B85C3D;background:rgba(244,236,226,0.05)}
.sb-divider{font-size:0.55rem;letter-spacing:0.22em;text-transform:uppercase;color:rgba(244,236,226,0.2);padding:1.2rem 1.5rem 0.3rem;font-family:'Inter',sans-serif;font-weight:600;pointer-events:none}
.sb-bot{padding:1.2rem 1.5rem;border-top:0.5px solid rgba(244,236,226,0.07)}
.btn-lo{width:100%;font-family:'Inter',sans-serif;font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;background:rgba(184,92,61,0.12);color:rgba(244,236,226,0.4);border:0.5px solid rgba(184,92,61,0.15);padding:0.65rem;cursor:pointer;border-radius:4px;transition:all 0.2s}
.btn-lo:hover{background:rgba(184,92,61,0.22);color:#d4795c}
.main{overflow-y:auto;height:100vh}
.mi2{padding:2.5rem;max-width:1400px}
.pg{display:none}.pg.on{display:block}
.ph{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}
.pt{font-family:'Cormorant Garamond',Georgia,serif;font-size:2rem;font-weight:300;color:#262321}
.ps{font-size:0.75rem;color:#8a7e75;margin-top:0.2rem}
.mets{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.8rem}
.met{background:#FDFAF6;border:0.5px solid rgba(38,35,33,0.11);border-radius:8px;padding:1.25rem 1.4rem}
.ml{font-size:0.63rem;letter-spacing:0.15em;text-transform:uppercase;color:#8a7e75;margin-bottom:0.5rem}
.mv{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.9rem;font-weight:300;color:#262321}
.mv.c{color:#B85C3D}.mv.t{color:#1A4D52}
.tc{background:#FDFAF6;border:0.5px solid rgba(38,35,33,0.11);border-radius:8px;overflow:hidden;margin-bottom:1.5rem}
.th{padding:1.1rem 1.4rem;border-bottom:0.5px solid rgba(38,35,33,0.11);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:0.5rem}
.tt{font-size:0.8rem;font-weight:500;color:#262321}
.ta{display:flex;gap:0.6rem;flex-wrap:wrap;align-items:center}
table{width:100%;border-collapse:collapse;min-width:500px}
th{font-size:0.62rem;letter-spacing:0.15em;text-transform:uppercase;color:#8a7e75;font-weight:500;padding:0.85rem 1.4rem;text-align:left;border-bottom:0.5px solid rgba(38,35,33,0.11);background:#F4ECE2;white-space:nowrap}
td{padding:0.9rem 1.4rem;font-size:0.82rem;border-bottom:0.5px solid rgba(38,35,33,0.07);color:#262321;vertical-align:middle}
tr:last-child td{border-bottom:none}
tr:hover td{background:rgba(244,236,226,0.2)}
.erow td{text-align:center;color:#8a7e75;padding:2.5rem;font-size:0.82rem}
.sb2{display:inline-block;padding:0.22rem 0.7rem;border-radius:2px;font-size:0.63rem;letter-spacing:0.1em;text-transform:uppercase;font-weight:500;white-space:nowrap}
.s-pend{background:rgba(184,92,61,0.1);color:#B85C3D}
.s-conf{background:rgba(26,77,82,0.1);color:#1A4D52}
.s-ci{background:rgba(59,109,17,0.1);color:#3b6d11}
.s-co{background:rgba(136,135,128,0.12);color:#8a7e75}
.bs{font-family:'Inter',sans-serif;font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;padding:0.45rem 0.9rem;border-radius:4px;cursor:pointer;border:0.5px solid rgba(38,35,33,0.11);background:#FDFAF6;color:#8a7e75;transition:all 0.2s;white-space:nowrap}
.bs:hover{background:#F4ECE2;color:#262321}
.bs.cl{background:#B85C3D;color:#fff;border-color:#B85C3D}.bs.cl:hover{background:#8a4129}
.bs.tl{background:#1A4D52;color:#fff;border-color:#1A4D52}.bs.tl:hover{background:#2a6b72}
select.bs{cursor:pointer}
.occ-g{display:grid;grid-template-columns:repeat(4,1fr);gap:0.9rem;margin-top:0.8rem}
.occ-r{background:#FDFAF6;border:0.5px solid rgba(38,35,33,0.11);border-radius:8px;padding:1rem;text-align:center}
.occ-r.occ{background:#1A4D52;border-color:#1A4D52}
.occ-num{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.5rem;font-weight:300;color:#262321}
.occ-r.occ .occ-num{color:#F4ECE2}
.occ-nm{font-size:0.65rem;letter-spacing:0.12em;text-transform:uppercase;color:#8a7e75;margin-top:0.2rem}
.occ-r.occ .occ-nm{color:rgba(244,236,226,0.55)}
.occ-gs{font-size:0.68rem;color:rgba(244,236,226,0.65);margin-top:0.25rem}
.mfo{display:none;position:fixed;inset:0;z-index:200;background:rgba(38,35,33,0.5);align-items:center;justify-content:center;padding:1.5rem}
.mfo.show{display:flex}
.mfb{background:#FDFAF6;padding:2.4rem;border-radius:8px;width:100%;max-width:580px;max-height:92vh;overflow-y:auto}
.mft{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.6rem;font-weight:300;margin-bottom:1.8rem;color:#262321}
.fg{display:flex;flex-direction:column;gap:0.4rem}
.fg label{font-size:0.62rem;letter-spacing:0.14em;text-transform:uppercase;color:#8a7e75;font-weight:500}
.fg input,.fg select,.fg textarea{font-family:'Inter',sans-serif;font-size:0.83rem;color:#262321;background:#f9f4ee;border:0.5px solid rgba(38,35,33,0.11);padding:0.72rem 0.85rem;border-radius:4px;outline:none;transition:border-color 0.2s}
.fg input:focus,.fg select:focus{border-color:#1A4D52}
.fg textarea{resize:vertical;min-height:70px}
.fg2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.fg2 .fg.full{grid-column:1/-1}
.mf-btns{display:flex;gap:0.8rem;margin-top:1.5rem}
.rbrow{display:flex;align-items:center;gap:0.75rem;margin-bottom:0.65rem}
.rblbl{font-size:0.78rem;color:#8a7e75;width:90px;flex-shrink:0}
.rbbar{height:18px;border-radius:2px;background:#1A4D52;opacity:0.7;min-width:2px}
.rbbar.c{background:#B85C3D;opacity:0.65}
.rbval{font-size:0.72rem;color:#8a7e75}
/* INVOICE */
.inv-prev{display:none;position:fixed;inset:0;z-index:300;background:rgba(38,35,33,0.65);align-items:flex-start;justify-content:center;padding:2rem;overflow-y:auto}
.inv-prev.show{display:flex}
.inv-wrap{background:#fff;width:100%;max-width:720px;border-radius:8px;overflow:hidden;margin:auto}
.inv-acts{background:#262321;padding:1rem 1.5rem;display:flex;gap:0.8rem;align-items:center;flex-wrap:wrap;position:sticky;top:0}
.inv-acts span{font-size:0.7rem;color:rgba(244,236,226,0.3);letter-spacing:0.1em;text-transform:uppercase;margin-right:auto}
.inv-doc{padding:1.5rem}
.inv-hdr{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.2rem;padding-bottom:1rem;border-bottom:0.5px solid #d8d0c8}
.ib-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.5rem;letter-spacing:0.22em;color:#262321;text-transform:uppercase}
.ib-sub{font-size:0.58rem;letter-spacing:0.42em;color:#8a7e75;text-transform:uppercase;margin-top:3px}
.ib-contact{font-size:0.72rem;color:#8a7e75;margin-top:0.5rem;line-height:1.6}
.inv-meta{text-align:right}
.inv-num{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.3rem;font-weight:300;color:#B85C3D}
.inv-lbl{font-size:0.58rem;letter-spacing:0.3em;text-transform:uppercase;color:#8a7e75;margin-bottom:0.2rem}
.inv-date{font-size:0.72rem;color:#8a7e75;margin-top:0.3rem}
.inv-to{margin-bottom:1rem}
.inv-to-lbl{font-size:0.58rem;letter-spacing:0.3em;text-transform:uppercase;color:#8a7e75;margin-bottom:0.4rem}
.inv-to-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.1rem;font-weight:400;color:#262321}
.inv-to-detail{font-size:0.72rem;color:#8a7e75;margin-top:0.25rem;line-height:1.5}
.inv-stay{background:#f9f4ee;border-radius:4px;padding:0.7rem 1.2rem;margin-bottom:1rem;display:grid;grid-template-columns:1fr 1fr 1fr;gap:0.8rem}
.is-lbl{font-size:0.58rem;letter-spacing:0.2em;text-transform:uppercase;color:#8a7e75;margin-bottom:0.2rem}
.is-val{font-family:'Cormorant Garamond',Georgia,serif;font-size:0.95rem;font-weight:400;color:#262321}
table.itbl{width:100%;border-collapse:collapse;margin-bottom:1rem}
table.itbl th{font-size:0.58rem;letter-spacing:0.2em;text-transform:uppercase;color:#8a7e75;padding:0.5rem 0;border-bottom:0.5px solid #d8d0c8;text-align:left;font-weight:500;background:transparent}
table.itbl td{padding:0.6rem 0;font-size:0.82rem;border-bottom:0.5px solid #ede8e0;color:#262321}
.inv-tot-row{display:flex;justify-content:flex-end;margin-bottom:1rem}
.inv-tot-box{min-width:210px}
.inv-sub{display:flex;justify-content:space-between;padding:0.28rem 0;font-size:0.78rem;color:#8a7e75}
.inv-grand{display:flex;justify-content:space-between;align-items:center;padding:0.6rem 0.9rem;background:#1A4D52;border-radius:4px;margin-top:0.4rem}
.inv-grand .lbl{font-size:0.65rem;letter-spacing:0.14em;text-transform:uppercase;color:rgba(244,236,226,0.7)}
.inv-grand .amt{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.25rem;color:#F4ECE2}
.inv-bank{border:0.5px solid #d8d0c8;border-radius:4px;padding:0.8rem 1.2rem;margin-bottom:1rem}
.inv-bank h4{font-size:0.58rem;letter-spacing:0.25em;text-transform:uppercase;color:#8a7e75;margin-bottom:0.6rem}
.inv-bank-det{display:flex;gap:2.5rem}
.ibd-lbl{font-size:0.63rem;color:#8a7e75;margin-bottom:0.15rem}
.ibd-val{font-size:0.83rem;font-weight:500;color:#262321}
.inv-notes{font-size:0.72rem;color:#8a7e75;line-height:1.65;padding-top:1rem;border-top:0.5px solid #d8d0c8}
.inv-notes strong{color:#262321}
.inv-footer{margin-top:1rem;padding-top:1rem;border-top:0.5px solid #d8d0c8;display:flex;justify-content:space-between;align-items:center}
.inv-footer .brand{font-family:'Cormorant Garamond',Georgia,serif;font-size:0.82rem;letter-spacing:0.2em;color:#8a7e75;text-transform:uppercase}
.inv-footer .tag{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:0.8rem;color:#B85C3D}
.stamp{position:absolute;top:2.5rem;right:1.5rem;transform:rotate(-8deg);border:2px solid;padding:0.3rem 0.8rem;font-size:0.62rem;letter-spacing:0.2em;text-transform:uppercase;font-weight:500;border-radius:3px;opacity:0.55}
.stamp-lunas{color:#3b6d11;border-color:#3b6d11}
.stamp-pend{color:#B85C3D;border-color:#B85C3D}

/* ── REGISTRATION FORM MODAL ── */
.rf-overlay{display:none;position:fixed;inset:0;z-index:500;background:rgba(38,35,33,0.7);align-items:flex-start;justify-content:center;padding:1.5rem;overflow-y:auto}
.rf-overlay.show{display:flex}
.rf-wrap{background:#FDFAF6;width:100%;max-width:760px;border-radius:8px;overflow:hidden;margin:auto;box-shadow:0 20px 60px rgba(0,0,0,0.3)}
.rf-acts{background:#262321;padding:0.9rem 1.4rem;display:flex;gap:0.6rem;align-items:center;flex-wrap:wrap;position:sticky;top:0;z-index:10}
.rf-acts span{font-size:0.65rem;color:rgba(244,236,226,0.3);letter-spacing:0.12em;text-transform:uppercase;margin-right:auto}
.rf-doc{padding:2.2rem 2.5rem}
/* Header */
.rf-hdr{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:1.2rem;border-bottom:0.5px solid #d8d0c8;margin-bottom:1.4rem}
.rf-brand .rf-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.5rem;letter-spacing:0.22em;color:#262321;text-transform:uppercase}
.rf-brand .rf-sub{font-size:0.58rem;letter-spacing:0.4em;color:#8a7e75;text-transform:uppercase;margin-top:3px}
.rf-brand .rf-addr{font-size:0.7rem;color:#8a7e75;margin-top:6px;line-height:1.6}
.rf-meta{text-align:right}
.rf-meta .rf-doctype{font-size:0.58rem;letter-spacing:0.3em;text-transform:uppercase;color:#8a7e75}
.rf-meta .rf-doctitle{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.2rem;color:#B85C3D;margin-top:2px}
.rf-meta .rf-invnum{font-size:0.75rem;color:#262321;font-weight:500;margin-top:6px}
/* Gradient line */
.rf-line{height:2.5px;background:linear-gradient(90deg,#1A4D52,#B85C3D);border-radius:2px;margin-bottom:1.4rem}
/* Section label */
.rf-sec{font-size:0.6rem;letter-spacing:0.28em;text-transform:uppercase;color:#B85C3D;font-weight:700;margin:1.2rem 0 0.65rem;padding-top:0.8rem;border-top:0.5px solid #ede8e0}
.rf-sec:first-of-type{margin-top:0;border-top:none;padding-top:0}
/* Field grid */
.rf-row{display:flex;gap:1rem;margin-bottom:0.75rem;flex-wrap:wrap}
.rf-field{flex:1;min-width:120px}
.rf-field.full{flex:100%}
.rf-field label{display:block;font-size:0.58rem;letter-spacing:0.18em;text-transform:uppercase;color:#8a7e75;font-weight:600;margin-bottom:4px}
.rf-val{border-bottom:1px solid #c8c0b8;padding:0.3rem 0;font-size:0.82rem;color:#262321;font-weight:500;min-height:1.8rem;background:transparent}
.rf-inp{width:100%;border:none;border-bottom:1px solid #c8c0b8;padding:0.3rem 0;font-family:'Inter',sans-serif;font-size:0.82rem;color:#262321;background:transparent;outline:none}
.rf-inp:focus{border-bottom-color:#1A4D52}
/* Stay summary box */
.rf-stay{background:#f5f0eb;border-radius:4px;padding:1rem 1.2rem;margin-bottom:0.5rem;display:grid;grid-template-columns:repeat(3,1fr);gap:0.8rem}
.rf-stay-item .rs-lbl{font-size:0.58rem;letter-spacing:0.18em;text-transform:uppercase;color:#8a7e75;margin-bottom:3px}
.rf-stay-item .rs-val{font-family:'Cormorant Garamond',Georgia,serif;font-size:1rem;color:#262321}
/* Total bar */
.rf-total{background:#1A4D52;border-radius:4px;padding:0.8rem 1.2rem;display:flex;justify-content:space-between;align-items:center;margin-bottom:0.5rem}
.rf-total .rt-lbl{font-size:0.6rem;letter-spacing:0.18em;text-transform:uppercase;color:rgba(244,236,226,0.65)}
.rf-total .rt-val{font-family:'Cormorant Garamond',Georgia,serif;font-size:1.5rem;color:#F4ECE2}
/* Terms */
.rf-terms{background:#faf7f4;border:0.5px solid #e8e0d8;border-radius:4px;padding:0.8rem 1rem;font-size:0.7rem;color:#262321;line-height:1.75;margin-bottom:0.5rem}
.rf-terms ol{padding-left:1.1rem}
.rf-notice{font-size:0.68rem;color:#8a7e75;font-style:italic;margin-bottom:1rem}
/* Signature */
.rf-signs{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:0.5rem;padding-top:0.8rem;border-top:0.5px solid #ede8e0}
.rf-sign .sg-lbl{font-size:0.6rem;letter-spacing:0.18em;text-transform:uppercase;color:#262321;font-weight:700;margin-bottom:4px}
.rf-sign .sg-area{height:48px;border-bottom:1px solid #262321;margin-bottom:4px}
.rf-sign .sg-name{font-size:0.75rem;color:#262321;border-bottom:1px solid #c8c0b8;padding:2px 0;min-height:1.4rem}
/* Footer */
.rf-footer{margin-top:1rem;padding-top:0.8rem;border-top:0.5px solid #ede8e0;display:flex;justify-content:space-between;align-items:center}
.rf-footer .rf-fbrand{font-family:'Cormorant Garamond',Georgia,serif;font-size:0.82rem;letter-spacing:0.18em;color:#8a7e75;text-transform:uppercase}
.rf-footer .rf-ftag{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:0.82rem;color:#B85C3D}
/* ══ PRINT ══
   Teknik: tambahkan class .printing-inv atau .printing-rf ke <body>
   sebelum window.print(), hapus class sesudah afterprint.
   Semua elemen halaman disembunyikan, hanya dokumen target yang tercetak.
*/
@media print {
  /* Warna & grafik background tetap tercetak */
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* ── Ukuran halaman A4 portrait ── */
  @page {
    size: A4 portrait;
    margin: 8mm 10mm;
  }

  /* ── Mode cetak INVOICE ── */
  body.printing-inv > *:not(#inv-prev) {
    display: none !important;
  }
  body.printing-inv #inv-prev {
    display: block !important;
    position: static !important;
    background: none !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  body.printing-inv .inv-wrap {
    box-shadow: none !important;
    max-width: 100% !important;
    border: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
  }
  body.printing-inv .inv-acts {
    display: none !important;
  }
  body.printing-inv .inv-doc {
    padding: 0 !important;
    zoom: 0.78;
  }

  /* ── Mode cetak REGISTRATION FORM ── */
  body.printing-rf > *:not(.rf-overlay) {
    display: none !important;
  }
  body.printing-rf .rf-overlay {
    display: block !important;
    position: static !important;
    background: none !important;
    padding: 0 !important;
    overflow: visible !important;
  }
  body.printing-rf .rf-wrap {
    box-shadow: none !important;
    max-width: 100% !important;
    border: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
  }
  body.printing-rf .rf-acts {
    display: none !important;
  }
  body.printing-rf .rf-doc {
    padding: 0 !important;
    zoom: 0.72;
  }

  /* ── Kompakkan elemen RF agar muat 1 halaman ── */
  body.printing-rf .rf-hdr { padding-bottom: 0.15rem; margin-bottom: 0.2rem; }
  body.printing-rf .rf-name { font-size: 16pt; }
  body.printing-rf .rf-line { margin-bottom: 0.6rem; }
  body.printing-rf .rf-row { gap: 0.25rem; margin-bottom: 0.1rem; }
  body.printing-rf .rf-sec { margin: 0.15rem 0 0.08rem; padding-top: 0.06rem; font-size: 7pt; }
  body.printing-rf .rf-stay { padding: 0.18rem 0.4rem; margin-bottom: 0.12rem; gap: 0.2rem; }
  body.printing-rf .rf-total { padding: 0.22rem 0.45rem; margin-bottom: 0.12rem; }
  body.printing-rf .rf-terms { padding: 0.18rem 0.3rem; font-size: 6.2pt; line-height: 1.15; margin-bottom: 0.08rem; }
  body.printing-rf .rf-terms ol { padding-left: 0.75rem; }
  body.printing-rf .rf-signs { gap: 0.8rem; margin-top: 0.14rem; padding-top: 0.14rem; }
  body.printing-rf .rf-footer { margin-top: 0.14rem; padding-top: 0.14rem; }
  body.printing-rf .rf-sign .sg-area { height: 36px; }
  body.printing-rf .rf-notice { font-size: 6.5pt; margin-bottom: 0.5rem; }

  /* ── Input → teks saat cetak ── */
  body.printing-rf .rf-inp,
  body.printing-inv .rf-inp {
    border: none !important;
    border-bottom: 1px solid #c8c0b8 !important;
    background: transparent !important;
    -webkit-appearance: none !important;
    appearance: none !important;
  }

  /* Sembunyikan elemen yg tidak perlu saat print */
  #ah-toast-wrap,
  #ah-confirm,
  #act-menu,
  #hapus-modal,
  #add-modal {
    display: none !important;
  }
}

/* ── KEUANGAN ── */
.txf{background:#FDFAF6;border:0.5px solid rgba(38,35,33,0.11);border-radius:8px;padding:1.4rem 1.6rem;margin-bottom:1.5rem}
.txf h3{font-family:'Cormorant Garamond',Georgia,serif;font-size:1rem;font-weight:400;color:#262321;margin-bottom:1rem}
.txrow{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end}
.txrow .fg{flex:1;min-width:120px}
.fin2{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}
.fc{background:#FDFAF6;border:0.5px solid rgba(38,35,33,0.11);border-radius:8px;padding:1.2rem 1.4rem}
.fc h3{font-size:0.72rem;letter-spacing:0.12em;text-transform:uppercase;color:#8a7e75;margin-bottom:0.8rem}
.tx-row{display:flex;justify-content:space-between;align-items:center;padding:0.65rem 0;border-bottom:0.5px solid rgba(38,35,33,0.07);font-size:0.82rem}
.tx-row:last-child{border-bottom:none}
.tx-row .tx-amt{font-weight:500}
.tx-row .tx-amt.inc{color:#1A4D52}
.tx-row .tx-amt.exp{color:#B85C3D}
.tx-cat{font-size:0.65rem;color:#8a7e75;margin-top:2px}
.fin-sum{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}
/* ── LAPORAN ── */
.rep-bar{height:8px;border-radius:4px;background:#1A4D52;margin-top:4px;min-width:4px}
.rep-row{display:flex;justify-content:space-between;align-items:center;padding:0.6rem 0;border-bottom:0.5px solid rgba(38,35,33,0.07);font-size:0.82rem}
.rep-row:last-child{border-bottom:none}
/* ── PENGATURAN ── */
.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.set-card{background:#FDFAF6;border:0.5px solid rgba(38,35,33,0.11);border-radius:8px;padding:1.4rem 1.6rem}
.set-card h3{font-family:'Cormorant Garamond',Georgia,serif;font-size:1rem;font-weight:400;color:#262321;margin-bottom:1.2rem;padding-bottom:0.6rem;border-bottom:0.5px solid rgba(38,35,33,0.11)}
.set-card .fg{margin-bottom:0.9rem}
.set-card .fg:last-child{margin-bottom:0}
.set-card input,.set-card select{width:100%;font-family:'Inter',sans-serif;font-size:0.83rem;color:#262321;background:#f9f4ee;border:0.5px solid rgba(38,35,33,0.11);padding:0.7rem 0.85rem;border-radius:4px;outline:none;transition:border-color 0.2s}
.set-card input:focus,.set-card select:focus{border-color:#1A4D52}
.room-set-row{display:flex;gap:0.7rem;align-items:center;padding:0.6rem 0;border-bottom:0.5px solid rgba(38,35,33,0.07);font-size:0.82rem}
.room-set-row:last-child{border-bottom:none}
.room-set-row input{flex:1;font-family:'Inter',sans-serif;font-size:0.82rem;color:#262321;background:#f9f4ee;border:0.5px solid rgba(38,35,33,0.11);padding:0.5rem 0.7rem;border-radius:4px;outline:none}
.room-set-num{font-family:'Cormorant Garamond',Georgia,serif;font-size:1rem;color:#8a7e75;min-width:28px}
/* ── FINANCE PAGE EXTRA ── */
.fr{display:flex;justify-content:space-between;align-items:center;padding:0.55rem 0;border-bottom:0.5px solid rgba(38,35,33,0.07);font-size:0.82rem;color:#262321}
.fr:last-child{border-bottom:none}
.fl{color:#8a7e75;font-size:0.78rem}
.fa{font-weight:500;font-size:0.82rem}
.fa.inc{color:#1A4D52}
.fa.exp{color:#B85C3D}
.ftot{display:flex;justify-content:space-between;align-items:center;padding:0.7rem 1rem;background:#1A4D52;border-radius:4px;margin-top:0.6rem}
.ftot .fl{color:rgba(244,236,226,0.7);font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase}
.ftot .fa{color:#F4ECE2;font-family:'Cormorant Garamond',Georgia,serif;font-size:1.1rem}
.hmb { display: none; }
/* ── CHART TREN ── */
.fin-chart{padding:0.4rem 0}
.bmonth{font-size:0.62rem;letter-spacing:0.1em;color:#8a7e75;text-transform:uppercase;margin:0.6rem 0 0.2rem}
.brow{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.2rem}
.bbar{height:8px;border-radius:4px;min-width:2px;transition:width 0.3s}
.bi{background:#1A4D52}
.be{background:#B85C3D;opacity:0.7}
.bval{font-size:0.68rem;color:#8a7e75;white-space:nowrap}

@media (max-width: 900px) {
  #app.show { display: flex; flex-direction: column; height: 100vh; overflow: hidden; width: 100vw; max-width: 100%; }
  .sb { height: auto; min-height: 60px; flex-direction: column; padding: 0; position: relative; width: 100%; overflow: visible !important; z-index: 200; }
  .sb-top { padding: 1rem; margin: 0; display: flex; align-items: center; gap: 0.8rem; flex-direction: row; border-bottom: none; }
  .sb-top > div:first-child { margin: 0 !important; }
  .sb-top svg { width: 22px; height: 22px; }
  .sb-name { font-size: 1.1rem; margin-right: auto; }
  .sb-sub, .sb-tag { display: none !important; }
  .hmb { display: block !important; position: relative; z-index: 50; padding: 0.5rem !important; margin: -0.5rem 0.5rem -0.5rem -0.5rem !important; }
  .sb-bot { position: absolute; top: 1rem; right: 1rem; padding: 0; border: none; z-index: 50; }
  .btn-lo { width: auto; padding: 0.4rem 0.8rem; font-size: 0.6rem; }
  .sb-menu { display: none; flex-direction: column; position: absolute; top: 100%; left: 0; background: #1A4D52; width: 100%; padding: 0 1rem 1rem 1rem; box-shadow: 0 10px 20px rgba(0,0,0,0.5); z-index: 100; border-top: 1px solid rgba(244,236,226,0.1); }
  .sb-menu.show { display: flex; }
  .sb-menu::-webkit-scrollbar { display: none; }
  .sb-divider { display: block; font-size: 0.6rem; margin-top: 1rem; }
  .sb-menu li { flex-shrink: 0; width: 100%; }
  .sb-menu li a { padding: 1rem; font-size: 0.75rem; border: none; border-bottom: 1px solid rgba(244,236,226,0.05); white-space: normal; }
  .sb-menu li a.on { border-bottom: 1px solid rgba(244,236,226,0.05); border-left: none; background: rgba(244,236,226,0.05); color: #B85C3D; }
  .main { flex: 1; height: auto; overflow-y: auto; padding-bottom: 2rem; width: 100%; max-width: 100%; overflow-x: hidden; box-sizing: border-box; }
  .mi2 { padding: 1.2rem 1rem; width: 100%; max-width: 100%; box-sizing: border-box; }
  .ph { flex-direction: column; gap: 0.8rem; align-items: flex-start; margin-bottom: 1.5rem; }
  .mets { grid-template-columns: 1fr 1fr; gap: 0.8rem; }
  .occ-g { grid-template-columns: 1fr 1fr; gap: 0.8rem; }
  .fin2 { grid-template-columns: 1fr; }
  .settings-grid { grid-template-columns: 1fr; }
  .txrow { flex-direction: column; align-items: stretch; }
  .txrow .fg { width: 100%; }
  .tc { width: 100%; overflow-x: auto; box-sizing: border-box; }
  .txf, .fc, .set-card, .met, .occ-r { padding: 1rem; width: 100%; box-sizing: border-box; }
  .inv-prev, .rf-overlay { padding: 0.5rem; }
  .inv-doc, .rf-doc { padding: 1.5rem 1rem; }
  .inv-hdr, .rf-hdr { flex-direction: column; gap: 1rem; }
  .inv-stay, .rf-stay { grid-template-columns: 1fr; gap: 0.5rem; }
  .rf-signs { grid-template-columns: 1fr; gap: 1rem; }
}