/* portal-cerah.css — Portal Keuangan AirNav "AIR TRAFFIC VIEW" + halaman masuk (situs uji, 4 Nov 2026).
   Cerah-futuristik: langit siang, peta udara titik-titik, panel kaca, garis HUD tipis. Identitas AirNav: biru #0b5cad/#1673d1, merah pesawat kertas #e3262b. */
:root{
  --biru:#0b5cad; --biru-2:#1673d1; --biru-3:#3d93ea; --merah:#e3262b; --merah-2:#b51c20;
  --tinta:#0c2340; --abu:#4f6380; --abu-2:#8195ad; --garis:rgba(22,115,209,.16);
  --kaca:rgba(255,255,255,.72); --kaca-garis:rgba(255,255,255,.9);
  --ok:#0f8a5f; --warn:#b45309; --bad:#c81e1e;
  --bayang:0 1px 1px rgba(12,35,64,.04),0 10px 30px rgba(22,115,209,.12);
  --judul:Sora,system-ui,"Segoe UI",sans-serif; --mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:#eef6fe;color:var(--tinta);font:14.5px/1.5 var(--judul);-webkit-font-smoothing:antialiased;overflow-x:hidden}
button,input{font:inherit;color:inherit}
:focus-visible{outline:3px solid rgba(22,115,209,.45);outline-offset:2px}
.pa-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.kaca{background:var(--kaca);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border:1px solid var(--kaca-garis);box-shadow:var(--bayang);position:relative}
.kaca::before{content:"";position:absolute;inset:6px;pointer-events:none;border-radius:inherit;
  background:linear-gradient(var(--biru-2),var(--biru-2)) left top/12px 1.5px,linear-gradient(var(--biru-2),var(--biru-2)) left top/1.5px 12px,
  linear-gradient(var(--biru-2),var(--biru-2)) right bottom/12px 1.5px,linear-gradient(var(--biru-2),var(--biru-2)) right bottom/1.5px 12px;background-repeat:no-repeat;opacity:.55}

/* langit */
.pa-langit{position:fixed;inset:0;z-index:0;overflow:hidden;
  background:radial-gradient(1200px 700px at 78% -10%,#ffffff 0%,rgba(255,255,255,0) 60%),radial-gradient(900px 600px at 0% 110%,#ffe9e9 0%,rgba(255,233,233,0) 55%),
  linear-gradient(180deg,#d9ecff 0%,#eaf4ff 45%,#f6faff 100%)}
.pa-langit::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(22,115,209,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(22,115,209,.05) 1px,transparent 1px);background-size:44px 44px;
  -webkit-mask-image:radial-gradient(ellipse at 50% 55%,#000 30%,transparent 80%);mask-image:radial-gradient(ellipse at 50% 55%,#000 30%,transparent 80%)}
.aw{position:absolute;display:block;border-radius:999px;background:#fff;opacity:.75;filter:blur(6px);animation:paAwan linear infinite}
.aw.a1{width:280px;height:60px;top:9%;left:-300px;animation-duration:70s}
.aw.a2{width:200px;height:44px;top:24%;left:-220px;animation-duration:90s;animation-delay:-35s;opacity:.6}
.aw.a3{width:340px;height:70px;top:70%;left:-360px;animation-duration:110s;animation-delay:-70s;opacity:.55}
@keyframes paAwan{to{transform:translateX(calc(100vw + 420px))}}
.pa-peta{position:fixed;inset:0;width:100%;height:100%;z-index:1}
.pa-pin-lapis{position:fixed;inset:0;z-index:2;pointer-events:none}

/* kepala */
.pa-atas{position:fixed;left:16px;right:16px;top:14px;z-index:5;display:flex;align-items:center;gap:18px;padding:10px 14px 10px 12px;border-radius:18px}
.pa-merek{display:flex;align-items:center;gap:11px;flex:none}
.pa-merek img{width:42px;height:42px}
.pa-merek b{display:block;font-weight:700;font-size:15.5px;color:var(--biru);line-height:1.2}
.pa-merek span{display:block;font-size:11.5px;color:var(--abu)}
.pa-hud{flex:1;display:flex;justify-content:center;gap:22px;font:500 11px var(--mono);letter-spacing:1.6px;color:var(--abu-2);white-space:nowrap;overflow:hidden}
.pa-hud span:first-child{color:var(--biru-2);font-weight:600}
.pa-uji{color:var(--merah)!important;font-weight:600}
.pa-kanan{display:flex;align-items:center;gap:12px;flex:none}
.pa-jam{text-align:right;line-height:1.1}
.pa-jam b{display:block;font:600 22px var(--mono);color:var(--tinta);font-variant-numeric:tabular-nums}
.pa-jam b small{font-size:13px;color:var(--abu-2)}
.pa-jam span{font-size:11px;color:var(--abu)}
.pa-akun{display:flex;align-items:center;gap:9px;padding:4px 12px 4px 4px;border-radius:999px;background:rgba(22,115,209,.07);border:1px solid var(--garis)}
.pa-akun b{display:block;font-size:13px;line-height:1.2;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pa-akun small{display:block;font-size:11px;color:var(--abu)}
.pa-inisial{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:#fff;font:700 12px var(--judul);background:linear-gradient(135deg,var(--biru),var(--biru-3))}
.pa-keluar{border:1px solid var(--garis);background:#fff;border-radius:999px;padding:8px 15px;font-weight:600;cursor:pointer;color:var(--biru)}
.pa-keluar:hover{background:#f1f7fe}

/* sambutan */
.pa-sambut{position:fixed;left:34px;top:104px;z-index:3;max-width:620px;pointer-events:none}
.pa-kecil{font:600 11px var(--mono);letter-spacing:1.8px;color:var(--merah)}
.pa-sambut h1{margin:6px 0 0;font:800 clamp(28px,3.4vw,44px)/1.05 var(--judul);letter-spacing:-.8px;
  background:linear-gradient(90deg,var(--tinta),var(--biru) 70%,var(--biru-3));-webkit-background-clip:text;background-clip:text;color:transparent}
.pa-sambut p{margin:8px 0 0;color:var(--abu);font-size:14.5px;max-width:520px}

/* pin peta */
.pa-pin{position:absolute;pointer-events:auto;width:30px;height:30px;margin:-15px 0 0 -15px;border:0;border-radius:50%;background:transparent;cursor:pointer;padding:0}
.pa-pin .lbl{position:absolute;display:flex;align-items:center;gap:7px;white-space:nowrap;padding:5px 10px 5px 6px;border-radius:10px;background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.95);
  box-shadow:0 4px 14px rgba(12,35,64,.10);font-size:12.5px;font-weight:600;color:var(--tinta);transition:transform .2s,box-shadow .2s;backdrop-filter:blur(6px)}
.pa-pin .lbl::before{content:"";position:absolute;width:14px;height:1.5px;background:var(--w)}
.pa-pin .kd{font:600 10.5px var(--mono);color:#fff;background:var(--w);padding:2px 5px;border-radius:5px;letter-spacing:.6px}
.pa-pin .tg{font-size:10.5px;color:var(--abu-2);font-weight:500}
.pa-pin.sisi-k .lbl{left:30px;top:50%;transform:translateY(-50%)}.pa-pin.sisi-k .lbl::before{left:-15px;top:50%}
.pa-pin.sisi-kr .lbl{right:30px;top:50%;transform:translateY(-50%)}.pa-pin.sisi-kr .lbl::before{right:-15px;top:50%}
.pa-pin.sisi-a .lbl{bottom:30px;left:50%;transform:translateX(-50%)}.pa-pin.sisi-a .lbl::before{width:1.5px;height:14px;left:50%;bottom:-15px}
.pa-pin.sisi-b .lbl{top:30px;left:50%;transform:translateX(-50%)}
.pa-pin.sisi-bk .lbl{top:28px;right:4px}.pa-pin.sisi-bk .lbl::before{width:1.5px;height:12px;right:10px;top:-13px}.pa-pin.sisi-b .lbl::before{width:1.5px;height:14px;left:50%;top:-15px}
.pa-pin.pilih .lbl,.pa-pin:hover .lbl{box-shadow:0 0 0 2px var(--w),0 10px 24px rgba(12,35,64,.18)}
.pa-pin.tutup .lbl{opacity:.72}
.pa-hub{position:absolute;transform:translate(calc(-100% - 14px),10px);display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--merah-2);white-space:nowrap;background:rgba(255,255,255,.8);padding:3px 8px 3px 4px;border-radius:8px}
.pa-hub.pa-pin{width:auto;height:auto;margin:0;border:1px solid rgba(227,38,43,.25);cursor:pointer;pointer-events:auto;font:inherit;font-size:12px;font-weight:700;color:var(--merah-2)}
.pa-hub.pa-pin.pilih,.pa-hub.pa-pin:hover{box-shadow:0 0 0 2px #0891b2,0 8px 20px rgba(12,35,64,.18);background:#fff}
.pa-hub span{font:600 10.5px var(--mono);color:#fff;background:var(--merah);padding:2px 5px;border-radius:5px}

/* kolom kanan */
.pa-kolom{position:fixed;right:16px;top:96px;bottom:142px;width:340px;z-index:4;display:flex;flex-direction:column;gap:12px;overflow:auto;scrollbar-width:thin}
.pa-detail{--w:#1673d1;border-radius:18px;padding:18px 18px 16px;flex:none}
.pa-detail::after{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;border-radius:0 3px 3px 0;background:var(--w)}
.dt-kepala{display:flex;gap:12px;align-items:center}
.dt-kepala .ik{width:48px;height:48px;flex:none;border-radius:14px;display:grid;place-items:center;color:var(--w);background:color-mix(in srgb,var(--w) 12%,#fff);border:1px solid color-mix(in srgb,var(--w) 25%,#fff)}
.dt-kepala .ik svg{width:34px;height:34px}
.dt-rute{display:flex;align-items:center;gap:6px;font:600 11px var(--mono);letter-spacing:1px;color:var(--abu-2)}
.dt-rute i{width:26px;height:1.5px;background:repeating-linear-gradient(90deg,var(--w) 0 4px,transparent 4px 7px)}
.dt-rute small{font:500 11px var(--judul);letter-spacing:0;color:var(--abu-2);margin-left:4px}
.pa-detail h2{margin:2px 0 0;font:700 19px/1.2 var(--judul)}
.pa-detail h2 em{font-style:normal;font-size:10px;color:#fff;background:var(--merah);padding:2px 7px;border-radius:999px;vertical-align:3px}
.pa-detail p{margin:10px 0 8px;color:var(--abu);font-size:13.5px}
.dt-isi{display:flex;flex-wrap:wrap;gap:6px}
.dt-isi span{font-size:11.5px;padding:3px 9px;border-radius:8px;background:rgba(22,115,209,.06);border:1px solid var(--garis)}
.pa-detail dl{margin:10px 0 12px;display:grid;gap:6px}
.pa-detail dl div{display:grid;grid-template-columns:62px 1fr;gap:8px;font-size:12.5px}
.pa-detail dt{color:var(--abu-2);font:500 11px var(--mono);letter-spacing:.8px;text-transform:uppercase;padding-top:1px}
.pa-detail dd{margin:0}
.pa-detail dd.siap{color:var(--ok);font-weight:600}.pa-detail dd.nanti{color:var(--warn);font-weight:600}
.dt-buka{display:flex;align-items:center;justify-content:center;gap:8px;height:46px;border-radius:12px;text-decoration:none;color:#fff;font-weight:700;
  background:linear-gradient(135deg,var(--w),color-mix(in srgb,var(--w) 70%,#fff));box-shadow:0 10px 22px color-mix(in srgb,var(--w) 32%,transparent);transition:transform .15s,filter .2s}
.dt-buka:hover{filter:brightness(1.07);transform:translateY(-1px)}
.dt-buka span{transition:transform .25s}.dt-buka:hover span{transform:translateX(4px)}
.dt-buka.mati{background:#eef2f7;color:var(--abu-2);box-shadow:none}
.pa-status{border-radius:18px;padding:14px 16px}
.pa-status h3{margin:0 0 6px;font:600 11px var(--mono);letter-spacing:1.6px;text-transform:uppercase;color:var(--biru-2)}
.pa-status .h3b{margin-top:14px}
.pa-status ul{list-style:none;margin:0;padding:0}
.pa-status li{display:grid;grid-template-columns:10px 1fr auto;gap:9px;align-items:center;padding:3.5px 0;font-size:12.5px;border-bottom:1px dashed var(--garis)}
.pa-status li:last-child{border-bottom:0}
.pa-status li>i{width:7px;height:7px;border-radius:50%;background:#c3ccd8}
.pa-status li.ok>i{background:var(--ok);box-shadow:0 0 0 3px #dbf3e8}.pa-status li.info>i{background:var(--biru-2);box-shadow:0 0 0 3px #deecfb}
.pa-status li.warn>i{background:var(--warn);box-shadow:0 0 0 3px #fbeedb}.pa-status li.bad>i{background:var(--bad);box-shadow:0 0 0 3px #fbe1e1}
.pa-status li span{color:var(--abu)}.pa-status li b{font:500 12px var(--mono);text-align:right}
.pa-tahap{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 10px}
.pa-tahap li{display:flex;align-items:center;gap:8px;min-width:0}
.pa-tahap .n{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font:600 11px var(--mono);background:#fff;border:2px solid var(--garis);color:var(--abu-2)}
.pa-tahap li.selesai .n{background:var(--biru-2);border-color:var(--biru-2);color:#fff}
.pa-tahap li.sebagian .n{border-color:var(--biru-2);color:var(--biru-2);background:linear-gradient(90deg,#d8e9fb 50%,#fff 50%)}
.pa-tahap .t{min-width:0}
.pa-tahap .t b{display:block;font-size:11.5px;line-height:1.25;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pa-tahap li.belum .t b{color:var(--abu-2)}
.pa-tahap .t small{display:none}

/* jalur aplikasi bawah */
.pa-jalur{position:fixed;left:16px;right:16px;bottom:14px;z-index:4;pointer-events:none}
.pa-jalur-isi{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 6px;pointer-events:auto;scrollbar-width:thin}
.pa-tile{--w:#1673d1;position:relative;flex:1 0 156px;max-width:220px;min-height:112px;text-align:left;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto 1fr auto;column-gap:10px;row-gap:6px;
  padding:12px 12px 10px;border-radius:16px;border:1px solid rgba(255,255,255,.95);background:rgba(255,255,255,.78);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  box-shadow:var(--bayang);cursor:pointer;transition:transform .2s,box-shadow .2s;opacity:0;transform:translateY(16px);animation:paNaik .55s cubic-bezier(.2,.8,.2,1) forwards;overflow:hidden}
.pa-tile::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--w);transform:scaleX(.18);transform-origin:left;transition:transform .35s}
.pa-tile:hover,.pa-tile.pilih{transform:translateY(-4px);box-shadow:0 0 0 2px var(--w),0 16px 30px rgba(12,35,64,.14)}
.pa-tile.pilih::after,.pa-tile:hover::after{transform:none}
@keyframes paNaik{to{opacity:1;transform:none}}
.pa-tile .kd{grid-column:1/3;font:600 10.5px var(--mono);letter-spacing:1px;color:var(--w)}
.pa-tile .ik{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;color:var(--w);background:color-mix(in srgb,var(--w) 12%,#fff)}
.pa-tile .ik svg{width:27px;height:27px}
.pa-tile .nm{font-weight:700;font-size:13.5px;line-height:1.25;align-self:center}
.pa-tile .st{grid-column:1/3;font:500 11px var(--mono)}
.pa-tile .st.siap{color:var(--ok)}.pa-tile .st.nanti{color:var(--abu-2)}
.pa-tile.tutup{background:rgba(255,255,255,.55)}.pa-tile.tutup .ik,.pa-tile.tutup .nm{opacity:.6}

/* berangkat */
.pa-kilat{position:fixed;inset:0;z-index:20;pointer-events:none;opacity:0;background:radial-gradient(circle at var(--x,50%) var(--y,50%),#fff 0,#fff 35%,color-mix(in srgb,var(--w,#1673d1) 22%,#fff) 80%);clip-path:circle(0 at var(--x,50%) var(--y,50%))}
body.pa-kilat-on .pa-kilat{opacity:1;clip-path:circle(150% at var(--x,50%) var(--y,50%));transition:clip-path .55s cubic-bezier(.6,0,.3,1),opacity .05s}
body.pa-terbang .pa-jalur,body.pa-terbang .pa-kolom,body.pa-terbang .pa-sambut{transition:opacity .4s,transform .4s;opacity:.35}

body[data-st="muat"] .pa-jalur,body[data-st="muat"] .pa-kolom{opacity:0}
.pa-jalur,.pa-kolom{transition:opacity .5s}

@media (max-width:1180px){ .pa-kolom{display:none} .pa-hud{display:none} }
@media (max-width:1180px) and (min-width:901px){ .pa-kolom{display:flex;top:auto;bottom:150px;width:320px;max-height:calc(100vh - 420px)} .pa-kolom .pa-status{display:none} }
@media (max-width:900px){
  body.pa:not(.pm){display:flex;flex-direction:column}
  .pa-atas{order:1}.pa-sambut{order:2}.pa-jalur{order:3}.pa-kolom{order:4}
  .pa-peta,.pa-pin-lapis{position:absolute;left:0;right:0;top:0;height:var(--peta-h,420px)}
  .pa-atas{position:relative;left:auto;right:auto;top:auto;margin:10px;flex-wrap:wrap;gap:10px}
  .pa-jam{display:none}.pa-akun b{max-width:110px}.pa-kanan{margin-left:auto}
  .pa-sambut{position:relative;left:auto;top:auto;padding:2px 18px 0}
  .pa-sambut p{font-size:13px}
  .pa-pin .lbl .nm,.pa-pin .tg,.pa-hub b{display:none}
  .pa-kolom,.pa-jalur{position:relative;left:auto;right:auto;top:auto;bottom:auto;width:auto;display:flex;margin:0 10px}
  .pa-jalur{margin-top:calc(var(--peta-h,420px) - var(--atas-h,190px))}
  .pa-jalur-isi{flex-wrap:wrap;overflow:visible}.pa-tile{flex:1 1 calc(50% - 10px);max-width:none}
  .pa-kolom{margin-top:12px;margin-bottom:20px;overflow:visible}.pa-kolom .pa-status{display:block}
}
@media (prefers-reduced-motion:reduce){ .aw{animation:none}.pa-tile{animation:none;opacity:1;transform:none} }

/* ======================= HALAMAN MASUK ======================= */
.pm{min-height:100vh}
.pm-kiri{position:fixed;left:44px;top:40px;z-index:3;max-width:min(720px,calc(100vw - 520px));pointer-events:none}
.pm-merek{display:flex;align-items:center;gap:12px}
.pm-merek img{width:52px;height:52px}
.pm-merek b{display:block;font-weight:700;font-size:17px;color:var(--biru)}
.pm-merek span{display:block;font:500 11px var(--mono);letter-spacing:1.4px;color:var(--abu-2)}
.pm-kiri h1{margin:30px 0 0;font:800 clamp(32px,3.9vw,56px)/1.04 var(--judul);letter-spacing:-1.5px;color:var(--tinta)}
.pm-kiri h1 span{display:block;white-space:nowrap;background:linear-gradient(90deg,var(--biru),var(--biru-3) 60%,var(--merah) 120%);-webkit-background-clip:text;background-clip:text;color:transparent}
.pm-kiri p{margin:14px 0 0;color:var(--abu);font-size:15px;max-width:440px}
.pm-jam{margin-top:22px;display:flex;gap:18px;font:500 12px var(--mono);letter-spacing:1.2px;color:var(--abu-2)}
.pm-jam b{font:600 26px var(--mono);color:var(--tinta);letter-spacing:0;display:block}
.pm-legenda{position:fixed;left:44px;bottom:28px;z-index:3;display:flex;gap:18px;font:500 11px var(--mono);letter-spacing:1px;color:var(--abu-2)}
.pm-legenda i{display:inline-block;width:9px;height:9px;border-radius:50%;border:2px solid var(--merah);background:#fff;vertical-align:-1px;margin-right:6px}
.pm-legenda em{display:inline-block;width:22px;height:0;border-top:1.5px dashed var(--biru-2);vertical-align:3px;margin-right:6px}
.pm-panel{position:fixed;right:5vw;top:50%;transform:translateY(-50%);z-index:5;width:min(420px,calc(100vw - 32px))}
.pm-kartu{border-radius:24px;padding:28px 28px 20px;transition:transform .5s cubic-bezier(.5,0,.3,1),opacity .4s}
.pm-kartu.getar{animation:pmGetar .4s}
@keyframes pmGetar{20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(4px)}}
.pm-pindai{position:relative;width:132px;height:132px;margin:0 auto 6px}
.pm-pindai img{position:absolute;left:50%;top:50%;width:70px;height:70px;transform:translate(-50%,-50%)}
.pm-pindai svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.pm-pindai .r1{transform-origin:66px 66px;animation:pmPutar 14s linear infinite}
.pm-pindai .r2{transform-origin:66px 66px;animation:pmPutar 6s linear infinite reverse}
.pm-pindai .r3{transform-origin:66px 66px;animation:pmPutar 2.6s linear infinite}
@keyframes pmPutar{to{transform:rotate(360deg)}}
.pm-kode{text-align:center;font:600 10.5px var(--mono);letter-spacing:2px;color:var(--biru-2)}
.pm-kartu h2{margin:4px 0 0;text-align:center;font:800 24px/1.2 var(--judul);letter-spacing:-.3px}
.pm-sub{margin:6px 0 18px;text-align:center;color:var(--abu);font-size:13.5px}
.pm-google{display:flex;flex-direction:column;align-items:center;gap:10px}
.pm-google #pmGoogle{min-height:44px;display:flex;justify-content:center}
.pm-gnote{font-size:12px;color:var(--abu-2);text-align:center;max-width:320px}
.pm-belum{font-size:13px;color:var(--warn);text-align:center;background:#fff7ec;border:1px solid #fde4c3;border-radius:12px;padding:10px 12px}
.pm-isian{display:block;margin-top:12px}
.pm-isian>span:first-child{display:block;font:600 10.5px var(--mono);letter-spacing:1.4px;text-transform:uppercase;color:var(--abu);margin-bottom:6px}
.pm-isian input{width:100%;height:46px;padding:0 14px;border:1.5px solid var(--garis);border-radius:12px;background:rgba(255,255,255,.85);font-size:15px;transition:border-color .2s,box-shadow .2s}
.pm-isian input:focus{outline:0;border-color:var(--biru-2);background:#fff;box-shadow:0 0 0 4px rgba(22,115,209,.14)}
.pm-sandi{position:relative;display:block}.pm-sandi input{padding-right:84px}
.pm-sandi button{position:absolute;right:6px;top:5px;height:36px;padding:0 12px;border:0;border-radius:9px;background:transparent;color:var(--biru-2);font-size:12.5px;font-weight:700;cursor:pointer}
.pm-capslock{margin-top:8px;font-size:12.5px;color:var(--warn)}
.pm-galat{min-height:18px;margin-top:10px;font-size:13px;color:var(--bad);font-weight:500;text-align:center}
.pm-tombol{width:100%;height:48px;margin-top:4px;border:0;border-radius:12px;color:#fff;font:700 15px var(--judul);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;
  background:linear-gradient(135deg,var(--biru),var(--biru-2) 60%,var(--biru-3));box-shadow:0 10px 22px rgba(11,92,173,.25)}
.pm-tombol svg{width:18px;height:18px}
.pm-tombol.muat svg{animation:pmTerbang 1s ease-in-out infinite}
@keyframes pmTerbang{50%{transform:translate(5px,-5px)}}
.pm-form[hidden]{display:none}
.pm-kaki{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:18px;padding-top:12px;border-top:1px dashed var(--garis);font:500 11px var(--mono);letter-spacing:.6px;color:var(--abu)}
.pm-status{display:flex;align-items:center;gap:7px}
.pm-status i{width:7px;height:7px;border-radius:50%;background:#c3ccd8}
.pm-status.ok i{background:var(--ok);box-shadow:0 0 0 3px #dbf3e8}.pm-status.bad i{background:var(--bad);box-shadow:0 0 0 3px #fbe1e1}
.pm-uji{color:var(--merah);font-weight:600}
.pm-sukses .pm-pindai .r3 circle{stroke:var(--ok)}
body.pm-masuk .pm-kartu{transform:scale(.94);opacity:0}
body.pm-masuk .pm-kiri,body.pm-masuk .pm-legenda{opacity:0;transition:opacity .4s}
@media (max-width:980px){
  body.pm{overflow:auto}
  .pm-kiri{position:relative;left:auto;top:auto;padding:22px 20px 0;max-width:none}
  .pm-kiri h1{margin-top:20px;font-size:34px}.pm-kiri p,.pm-jam{display:none}
  .pm-panel{position:relative;right:auto;top:auto;transform:none;margin:min(34vh,260px) auto 24px}
  .pm-legenda{display:none}
}
@media (prefers-reduced-motion:reduce){ .pm-pindai .r1,.pm-pindai .r2,.pm-pindai .r3{animation:none} }

/* ===== HOLOGRAM NAVIS DI PORTAL (portal-navis.js, 4 Nov 2026) — wujud NAVIS, latar = portal (kaca terang) ===== */
.dt-holo{margin-top:8px;width:100%;display:flex;align-items:center;justify-content:center;gap:10px;height:42px;border-radius:12px;cursor:pointer;font-weight:700;color:#0e7490;
  background:linear-gradient(135deg,rgba(8,145,178,.1),rgba(22,115,209,.08));border:1px solid rgba(8,145,178,.35)}
.dt-holo:hover{background:linear-gradient(135deg,rgba(8,145,178,.18),rgba(22,115,209,.14))}
.dt-holo i{width:12px;height:12px;border-radius:50%;background:#0891b2;box-shadow:0 0 0 0 rgba(8,145,178,.6);animation:phDenyut 1.8s infinite}
@keyframes phDenyut{70%{box-shadow:0 0 0 10px rgba(8,145,178,0)}100%{box-shadow:0 0 0 0 rgba(8,145,178,0)}}
.ph-mini{position:absolute;width:118px;height:118px;transform:translate(-50%,-50%);border:0;padding:0;background:transparent;cursor:pointer;pointer-events:auto;z-index:2;border-radius:50%}
.ph-mini canvas{width:100%;height:100%;display:block}
.ph-mini-t{position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);font:700 10px var(--mono);letter-spacing:3px;color:#0e7490;background:rgba(255,255,255,.85);padding:1px 7px;border-radius:6px;opacity:0;transition:opacity .2s}
.ph-mini:hover .ph-mini-t,.ph-mini:focus-visible .ph-mini-t{opacity:1}
body.ph-buka .ph-mini{visibility:hidden}
.ph-mesin{position:fixed;width:1px;height:1px;left:-9999px;top:0;border:0;visibility:hidden}

.ph-ov{position:fixed;inset:0;z-index:60;display:none;color:var(--tinta)}
.ph-ov.on{display:block;animation:phMasuk .55s cubic-bezier(.2,.8,.2,1) both}
.ph-ov.keluar{animation:phKeluar .42s ease both}
@keyframes phMasuk{from{opacity:0;clip-path:circle(0% at var(--ox,50%) var(--oy,55%))}to{opacity:1;clip-path:circle(150% at var(--ox,50%) var(--oy,55%))}}
@keyframes phKeluar{to{opacity:0;transform:scale(1.03)}}
.ph-kaca{position:absolute;inset:0;background:radial-gradient(900px 600px at 50% 48%,rgba(255,255,255,.55),rgba(236,246,255,.82) 60%,rgba(226,240,255,.9));backdrop-filter:blur(7px) saturate(1.3);-webkit-backdrop-filter:blur(7px) saturate(1.3)}
.ph-grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(22,115,209,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(22,115,209,.07) 1px,transparent 1px);background-size:44px 44px;
  -webkit-mask-image:radial-gradient(ellipse at 50% 50%,#000 20%,transparent 70%);mask-image:radial-gradient(ellipse at 50% 50%,#000 20%,transparent 70%)}
.ph-kepala{position:absolute;left:24px;right:24px;top:18px;display:flex;align-items:center;gap:16px}
.ph-id b{display:block;font:800 22px/1 var(--judul);letter-spacing:6px;color:var(--biru)}
.ph-id span{font:500 10.5px var(--mono);letter-spacing:2px;color:var(--abu);text-transform:uppercase}
.ph-hud{margin-left:auto;display:flex;gap:12px;font:600 11px var(--mono);letter-spacing:2px}
.ph-st{color:#0e7490;padding:4px 10px;border:1px solid rgba(8,145,178,.35);border-radius:999px;background:rgba(255,255,255,.7)}
.ph-ov[data-mode=dengar] .ph-st{color:#1d4ed8;border-color:rgba(37,99,235,.4)}.ph-ov[data-mode=bicara] .ph-st{color:#b45309;border-color:rgba(217,119,6,.45)}.ph-ov[data-mode=pikir] .ph-st{color:#6d28d9;border-color:rgba(124,58,237,.4)}
.ph-mesin-st{color:var(--abu-2);padding:4px 0}
.ph-suara,.ph-x{width:40px;height:40px;border-radius:12px;border:1px solid rgba(255,255,255,.95);background:rgba(255,255,255,.75);cursor:pointer;box-shadow:var(--bayang);font-size:16px}
.ph-x{font-size:22px;line-height:1}
.ph-panggung{position:absolute;left:50%;top:47%;width:min(52vh,40vw,520px);aspect-ratio:1;transform:translate(-50%,-50%);transition:left .6s cubic-bezier(.2,.8,.2,1)}
.ph-ov.ada-jawab .ph-panggung{left:34%}
.ph-orbit{position:absolute;inset:-8%;border-radius:50%;border:1px dashed rgba(22,115,209,.28)}
.ph-inti-b{position:absolute;inset:0;border:0;padding:0;background:transparent;border-radius:50%;cursor:pointer}
.ph-inti{width:100%;height:100%;display:block}
.ph-nama{position:absolute;left:50%;top:calc(100% - 4px);transform:translateX(-50%);font:700 13px var(--mono);letter-spacing:8px;color:var(--biru);opacity:.75}
.ph-simpul{position:absolute;inset:-8%;pointer-events:none}
.ph-node{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;display:flex;align-items:center;gap:8px;padding:7px 12px 7px 7px;border-radius:12px;cursor:pointer;white-space:nowrap;
  background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.95);box-shadow:0 8px 22px rgba(12,35,64,.12);font-size:12.5px;font-weight:700;animation:phNode .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.25s + var(--d,0s))}
.ph-node .kd{font:600 10.5px var(--mono);color:#fff;background:var(--w);padding:2px 6px;border-radius:6px}
.ph-node:hover{box-shadow:0 0 0 2px var(--w),0 10px 26px rgba(12,35,64,.18)}
.ph-node.tutup{opacity:.55;cursor:default}
@keyframes phNode{from{opacity:0;transform:translate(-50%,-50%) scale(.6)}}
.ph-sentuh{position:absolute;left:50%;top:calc(100% + 34px);transform:translateX(-50%);display:none;white-space:nowrap;font:600 12px var(--mono);letter-spacing:1.5px;color:#0e7490;padding:6px 14px;border-radius:999px;background:rgba(255,255,255,.85);animation:phKedip 1.6s infinite}
.ph-ov.sentuh .ph-sentuh{display:block}
@keyframes phKedip{50%{opacity:.45}}
.ph-ucap{position:absolute;left:50%;transform:translateX(-50%);bottom:150px;width:min(760px,calc(100% - 40px));text-align:center;font-size:16px;line-height:1.5;min-height:24px;transition:left .6s}
.ph-ucap.u{color:var(--biru-2);font-style:italic}.ph-ucap.s{color:var(--abu);font-size:14px}
.ph-ov.ada-jawab .ph-ucap{left:34%;width:min(560px,56vw)}
.ph-jawab{position:absolute;right:28px;top:50%;transform:translateY(-55%);width:min(440px,36vw);max-height:62vh;display:flex;flex-direction:column;border-radius:18px;overflow:hidden;
  background:rgba(255,255,255,.9);border:1px solid #fff;box-shadow:0 24px 60px -18px rgba(12,35,64,.3);animation:phJawab .45s cubic-bezier(.2,.8,.2,1) both}
.ph-jawab[hidden]{display:none}
@keyframes phJawab{from{opacity:0;transform:translate(30px,-55%)}}
.ph-jawab-k{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font:600 11px var(--mono);letter-spacing:2px;color:#fff;background:linear-gradient(135deg,#0891b2,#1673d1)}
.ph-jawab-k button{border:0;background:rgba(255,255,255,.2);color:#fff;border-radius:8px;width:26px;height:26px;cursor:pointer;font-size:16px}
.ph-jawab-isi{padding:14px 16px;overflow:auto;font-size:14.5px;line-height:1.6}
.ph-jawab-isi .lb{display:block;margin-top:10px;font:10.5px var(--mono);color:var(--abu-2)}
.ph-jawab-aksi{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 14px}
.ph-jawab-aksi button{border:1px solid rgba(22,115,209,.3);background:#fff;color:var(--biru);border-radius:999px;padding:6px 12px;font-size:12.5px;font-weight:700;cursor:pointer}
.ph-bawah{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);width:min(760px,calc(100% - 40px));display:flex;flex-direction:column;gap:8px;align-items:center}
.ph-saran{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.ph-saran button{border:1px solid rgba(255,255,255,.95);background:rgba(255,255,255,.75);border-radius:999px;padding:6px 12px;font-size:12.5px;cursor:pointer;box-shadow:0 4px 12px rgba(12,35,64,.06)}
.ph-saran button:hover{border-color:#0891b2;color:#0e7490}
.ph-form{display:flex;gap:8px;width:100%}
.ph-form input{flex:1;height:44px;padding:0 14px;border-radius:12px;border:1px solid rgba(22,115,209,.22);background:rgba(255,255,255,.9)}
.ph-form button{height:44px;padding:0 14px;border-radius:12px;border:1px solid rgba(22,115,209,.22);background:#fff;cursor:pointer}
.ph-form .ph-kirim{background:linear-gradient(135deg,#0891b2,#1673d1);color:#fff;border-color:transparent;font-weight:700}
.ph-auto{font-size:12px;color:var(--abu);display:flex;gap:6px;align-items:center;cursor:pointer}
@media (max-width:900px){
  .ph-kepala{left:14px;right:14px;top:12px;gap:8px}.ph-id b{font-size:18px;letter-spacing:4px}.ph-id span{display:none}.ph-mesin-st{display:none}
  .ph-panggung,.ph-ov.ada-jawab .ph-panggung{left:50%;top:30%;width:min(62vw,40vh)}
  .ph-orbit{display:none}
  .ph-simpul{position:fixed;inset:auto 0 auto 0;top:calc(30% + min(31vw,20vh) + 34px);display:flex;gap:8px;overflow-x:auto;padding:4px 14px;pointer-events:auto;scrollbar-width:none}
  .ph-node{position:static;transform:none;flex:none;animation-name:phNodeHp}
  @keyframes phNodeHp{from{opacity:0}}
  .ph-sentuh{top:auto;bottom:-30px}
  .ph-ucap,.ph-ov.ada-jawab .ph-ucap{left:50%;width:calc(100% - 28px);bottom:auto;top:calc(30% + min(31vw,20vh) + 84px);font-size:14.5px}
  .ph-jawab{left:14px;right:14px;width:auto;top:auto;bottom:178px;transform:none;max-height:34vh}
  @keyframes phJawab{from{opacity:0;transform:translateY(20px)}}
  .ph-bawah{bottom:10px;width:calc(100% - 28px)}.ph-saran{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;width:100%;scrollbar-width:none}.ph-saran button{flex:none}
  .ph-mini{width:84px;height:84px}
}
@media (prefers-reduced-motion:reduce){.ph-ov.on,.ph-ov.keluar,.ph-node,.ph-jawab{animation:none}.dt-holo i,.ph-sentuh{animation:none}}
/* saat hologram terbuka: isi portal memudar, langit & peta titik-titik tetap jadi latar */
.pa-atas,.pa-sambut,.pa-kolom,.pa-jalur,.pa-pin-lapis{transition:opacity .45s ease,filter .45s ease}
body.ph-buka .pa-atas,body.ph-buka .pa-sambut,body.ph-buka .pa-kolom,body.ph-buka .pa-jalur,body.ph-buka .pa-pin-lapis{opacity:0;visibility:hidden;transition:opacity .45s ease,visibility 0s .45s}
body.ph-buka .pa-peta{filter:saturate(1.2) blur(.5px);opacity:.75}
.ph-nama{display:none}
.ph-form input{min-width:0}
.ph-mini{width:100px;height:100px}
body.ph-ada .pa-hub{transform:translate(calc(-100% - 44px),12px)}
@media (max-width:900px){.ph-mini{width:72px;height:72px} body.ph-ada .pa-hub{transform:translate(calc(-100% - 30px),8px)} .ph-form .ph-kirim{padding:0 12px}}
/* NAVIS murni (4 Nov 2026, user: "gak usah ada menu portalnya, murni NAVIS dengan animasi keren") */
.ph-panggung{width:min(74vh,56vw,780px);top:48%}
.ph-ov.ada-jawab .ph-panggung{left:33%;width:min(66vh,48vw,700px)}
.ph-halo{position:absolute;inset:-14%;border-radius:50%;background:radial-gradient(circle,rgba(8,145,178,.14) 0%,rgba(22,115,209,.06) 38%,transparent 66%);animation:phHalo 5s ease-in-out infinite}
@keyframes phHalo{50%{transform:scale(1.06);opacity:.75}}
.ph-ov[data-mode=bicara] .ph-halo{background:radial-gradient(circle,rgba(217,119,6,.16) 0%,rgba(245,158,11,.06) 38%,transparent 66%)}
.ph-ov[data-mode=dengar] .ph-halo{background:radial-gradient(circle,rgba(37,99,235,.16) 0%,rgba(37,99,235,.06) 38%,transparent 66%)}
.ph-sentuh{top:calc(100% + 6px)}
.ph-ucap{bottom:104px}
.ph-bawah{width:min(620px,calc(100% - 40px))}
@media (max-width:900px){
  .ph-panggung,.ph-ov.ada-jawab .ph-panggung{left:50%;top:32%;width:min(88vw,50vh)}
  .ph-ucap,.ph-ov.ada-jawab .ph-ucap{top:calc(32% + min(44vw,25vh) + 26px)}
  .ph-sentuh{top:auto;bottom:-24px}
  .ph-jawab{bottom:84px}
}
@media (prefers-reduced-motion:reduce){.ph-halo{animation:none}}
.ph-sentuh{top:-34px;bottom:auto}
@media (max-width:900px){.ph-sentuh{top:-30px;bottom:auto}}

/* terbang ke Bandara 3D: inti membesar & memudar */
.ph-ov.ph-terbang .ph-panggung{transition:transform 1.4s cubic-bezier(.6,0,.2,1),opacity 1.4s;transform:translate(-50%,-50%) scale(2.6);opacity:0}
.ph-ov.ph-terbang .ph-bawah,.ph-ov.ph-terbang .ph-jawab,.ph-ov.ph-terbang .ph-ucap{transition:opacity .5s;opacity:0}
