/* /team — Sistem Pasukan AI, Peringkat 2. Mod gelap, mudah alih dahulu (390px, min 360px). */
:root{color-scheme:dark;--bg:#121212;--kad:#1e1e1e;--kad2:#2a2a2a;--teks:#f1f1f1;--lemah:#9a9a9a;--garis:#2e2e2e;--utama:#4c8dff;--ok:#3fb950;--amaran:#f0a020;--bahaya:#ff6b6b;--bintang:#f59e0b;--r:14px}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--teks)}
body{font:15px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;padding-bottom:env(safe-area-inset-bottom)}
a{color:var(--utama);text-decoration:none}
[hidden]{display:none!important}
header#atas{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:var(--kad);border-bottom:1px solid var(--garis)}
.jenama{font-weight:700;color:var(--teks)}
nav{display:flex;gap:4px}nav a{padding:10px 8px;min-height:44px;display:inline-flex;align-items:center;gap:4px}
.lencana{background:var(--bahaya);color:#fff;border-radius:10px;padding:0 6px;font-size:12px;min-width:20px;text-align:center;line-height:20px;font-weight:600}
#sepanduk{background:var(--amaran);color:#000;padding:8px 12px;font-size:14px}
main{max-width:860px;margin:0 auto;padding:12px}
.kad{background:var(--kad);border:1px solid var(--garis);border-radius:var(--r);padding:12px;margin:0 0 10px}
.baris{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.antara{justify-content:space-between}
.lemah{color:var(--lemah);font-size:13px}
.label{display:inline-block;font-size:12px;padding:1px 8px;border-radius:9px;border:1px solid var(--garis)}
.s-lulus,.s-aktif,.s-bangun,.s-selesai{color:var(--ok);border-color:var(--ok)}
.s-tolak,.s-gagal,.s-tamat,.s-dibatalkan{color:var(--bahaya);border-color:var(--bahaya)}
.s-semakan,.s-beratur,.s-menghidupkan,.s-rehat,.s-dikerjakan,.s-berjalan{color:var(--amaran);border-color:var(--amaran)}
h1{font-size:20px;margin:4px 0 12px}h2{font-size:17px;margin:14px 0 8px}h3{font-size:15px;margin:10px 0 6px}
button,.btn{font:inherit;min-height:44px;min-width:44px;padding:8px 14px;border-radius:10px;border:1px solid var(--garis);background:var(--kad2);color:var(--teks);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px}
button.utama,.btn.utama{background:var(--utama);border-color:var(--utama);color:#fff}
button.bahaya{background:var(--bahaya);border-color:var(--bahaya);color:#fff}
button:disabled{opacity:.5;cursor:default}
input,textarea,select{font:inherit;width:100%;min-height:44px;padding:8px 10px;border-radius:10px;border:1px solid var(--garis);background:var(--bg);color:var(--teks)}
input[type=checkbox],input[type=radio]{width:22px;min-height:22px;height:22px;margin:0;accent-color:var(--utama)}
input[type=range]{padding:0;border:0;background:none;accent-color:var(--utama)}
input[type=color]{padding:2px;width:56px}
textarea{min-height:90px;resize:vertical}
label{display:block;margin:12px 0 4px;font-weight:600;font-size:14px}
.pilih{display:flex;align-items:center;gap:10px;font-weight:400;margin:0;min-height:44px}
.salah{border-color:var(--bahaya)!important}.ralat-medan{color:var(--bahaya);font-size:13px;margin-top:4px}
.tab{display:flex;overflow-x:auto;gap:2px;border-bottom:1px solid var(--garis);margin-bottom:10px}
.tab a{padding:12px;white-space:nowrap;color:var(--lemah);border-bottom:2px solid transparent;min-height:44px}
.tab a.aktif{color:var(--teks);border-color:var(--utama)}
.chat{display:flex;flex-direction:column;gap:6px;max-height:60vh;overflow-y:auto;padding:4px}
.mesej{background:var(--kad);border:1px solid var(--garis);border-radius:var(--r);padding:8px 10px;max-width:88%}
.mesej.saya{align-self:flex-end;background:var(--utama);color:#fff;border-color:var(--utama)}
.mesej .dari{font-size:12px;font-weight:700;opacity:.8}.mesej .masa{font-size:11px;opacity:.82}
.hantar{display:flex;gap:6px;margin-top:8px;align-items:flex-end}.hantar textarea{min-height:44px;height:44px;max-height:160px;resize:none}
.md p{margin:0 0 6px}.md p:last-child{margin:0}.md h2,.md h3,.md h4{margin:6px 0 4px;font-size:15px}
.md pre,pre.teks{background:var(--bg);border:1px solid var(--garis);border-radius:8px;padding:8px;overflow-x:auto;white-space:pre-wrap;font-size:13px;margin:4px 0}
.md code{font-size:13px;background:#0006;padding:0 4px;border-radius:4px}.md a{text-decoration:underline;word-break:break-all}
ul.sen,ol.sen{margin:4px 0;padding-left:20px}
.palang{height:8px;background:var(--kad2);border-radius:4px;overflow:hidden}.palang>i{display:block;height:100%;background:var(--ok)}
.palang.amaran>i{background:var(--amaran)}.palang.penuh>i{background:var(--bahaya)}.palang.besar{height:14px;border-radius:7px}
dialog{border:1px solid var(--garis);border-radius:var(--r);background:var(--kad);color:var(--teks);max-width:94vw;width:420px}
dialog::backdrop{background:#000a}
dialog.menu{width:320px}dialog.menu .btn,dialog.menu button{display:flex;width:100%;margin-top:8px}
#toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%);background:var(--teks);color:var(--bg);padding:10px 14px;border-radius:10px;max-width:92vw;z-index:20}
.contoh{font-size:12px;color:var(--amaran);border:1px dashed var(--amaran);border-radius:8px;padding:6px 8px;margin:0 0 10px}
img.pratonton{max-width:100%;border-radius:8px}
.kad-projek{display:block;color:inherit;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}

/* ===== Peringkat 2: susun atur ===== */
body.p2 main{max-width:none;margin:0;padding:0}
#app{display:block}
body.p2 #kiri{display:none}
body.p2.rumah #kiri{display:block}body.p2.rumah #utama{display:none}
@media (min-width:900px){
  body.p2 #app{display:grid;grid-template-columns:380px 1fr;height:100vh;height:100dvh}
  body.p2 #kiri,body.p2.rumah #kiri{display:block;border-right:1px solid var(--garis);overflow-y:auto;height:100vh;height:100dvh;position:relative}
  body.p2 #utama,body.p2.rumah #utama{display:block;overflow-y:auto;height:100vh;height:100dvh}
  body.p2 .balik{display:none}
  body.p2 .skrin-chat{height:var(--vvh,100dvh);max-height:var(--vvh,100dvh)}
}
.kosong-kanan{display:flex;height:100%;align-items:center;justify-content:center;color:var(--lemah);text-align:center;padding:24px}
.halaman{max-width:720px;margin:0 auto;padding:0 12px 24px}
.bar-atas{position:sticky;top:0;z-index:4;display:flex;align-items:center;gap:6px;padding:6px 4px;background:var(--bg);min-height:56px}
.bar-atas h1{font-size:18px;margin:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ikon{border:0;background:transparent;border-radius:50%;width:44px;height:44px;padding:0;font-size:22px;line-height:1;color:var(--teks)}
.bulat{border-radius:50%;width:48px;height:48px;padding:0;background:var(--kad2);border:1px solid var(--garis);font-size:24px}

/* Skrin utama */
.rumah-atas{position:relative;padding:12px 12px 4px;text-align:center;min-height:68px}
.rumah-atas .tambah{position:absolute;top:10px;right:12px}
.cos{display:inline-flex;flex-direction:column;align-items:center;gap:6px;color:var(--teks);padding:18px 12px 6px;min-width:120px}
.cos{display:flex;width:max-content;margin:-28px auto 4px;position:relative}.cos .nm{font-size:16px}.cos.aktif .nm{color:var(--utama)}.cos .belum{position:absolute;top:14px;right:8px}
.guna-kecil{font-size:12px;color:var(--amaran);border:1px solid var(--amaran);border-radius:9px;padding:0 8px}
.guna-kecil.penuh{color:var(--bahaya);border-color:var(--bahaya)}
ul.senarai{list-style:none;margin:0;padding:4px 0 90px}
.rumah-senarai a.brs{display:flex;align-items:center;gap:14px;padding:10px 16px;color:var(--teks);min-height:72px}
.rumah-senarai a.brs:hover,.rumah-senarai a.brs.aktif{background:var(--kad)}
.brs .isi{flex:1;min-width:0}
.brs .t1,.brs .t2{display:flex;gap:8px;align-items:baseline;justify-content:space-between}
.brs .nm{font-size:17px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brs .ms{color:var(--lemah);font-size:13px;white-space:nowrap;flex:none}
.brs .pr{color:var(--lemah);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.belum{background:var(--utama);color:#fff;border-radius:10px;font-size:12px;font-weight:700;min-width:20px;line-height:20px;padding:0 6px;text-align:center;flex:none}
.rumah-bawah{position:fixed;left:0;right:0;bottom:0;display:flex;gap:10px;align-items:center;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg) 35%);z-index:6}
@media (min-width:900px){.rumah-bawah{position:sticky;width:auto}}
input.cari{flex:1;width:auto;min-width:0;background:var(--kad);border:1px solid var(--garis);border-radius:26px;padding:0 18px;min-height:48px;font-size:17px}
.rumah-bawah .bulat{display:inline-flex;align-items:center;justify-content:center;color:var(--teks);flex:none}
.tiada{color:var(--lemah);text-align:center;padding:24px}

/* Avatar ejen: bentuk + warna + dua mata */
.av{position:relative;flex:none;width:52px;height:52px;background:var(--w,#888);border-radius:50%}
.av::before,.av::after{content:"";position:absolute;width:10%;height:24%;top:24%;background:#111;border-radius:6px;transform:rotate(-28deg)}
.av::before{left:46%}.av::after{left:66%}
.av.segi{border-radius:28%;transform:rotate(-8deg)}
.av.titis{border-radius:58% 42% 50% 50%/62% 58% 42% 38%}
.av.besar{width:104px;height:104px}
.av.kecil{width:28px;height:28px}
.av .bintang{position:absolute;right:-6px;bottom:-2px;width:34px;height:34px;border-radius:50%;background:var(--bintang);border:4px solid var(--bg);color:#fff;font-size:15px;display:flex;align-items:center;justify-content:center;z-index:1}
.av .titik{position:absolute;right:-1px;top:-1px;width:14px;height:14px;border-radius:50%;background:var(--ok);border:3px solid var(--bg);z-index:1}
.av.rehat{filter:grayscale(.85) brightness(.7)}
.av-grp{position:relative;flex:none;width:52px;height:52px}
.av-grp .av{position:absolute;width:30px;height:30px}
.av-grp .av:nth-child(1){left:2px;top:2px}.av-grp .av:nth-child(2){right:2px;top:6px}.av-grp .av:nth-child(3){left:0;bottom:0}
.av-grp .lebih{position:absolute;right:0;bottom:2px;font-size:15px;font-weight:700;color:var(--lemah)}

/* Skrin chat */
.skrin-chat{display:flex;flex-direction:column;height:var(--vvh,100dvh);max-height:var(--vvh,100dvh);overflow:hidden}
.skrin-chat .bar-atas{border-bottom:1px solid var(--garis)}
.skrin-chat .bar-atas .tjk{flex:1;min-width:0;display:flex;align-items:center;gap:10px;color:var(--teks)}
.bar-atas .tjk{flex:1;min-width:0;font-weight:600}.tjk>div{min-width:0}.tjk .nm,.tjk .kecil{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tjk .nm{font-weight:600}
.aliran{flex:1;overflow-y:auto;padding:10px 10px 4px;display:flex;flex-direction:column;gap:4px}
.gel{max-width:84%;padding:8px 12px;border-radius:18px;background:var(--kad);overflow-wrap:break-word;align-self:flex-start}
.gel.saya{align-self:flex-end;background:var(--utama);color:#fff;border-bottom-right-radius:6px}
.gel.bot{border-bottom-left-radius:6px}
.gel .dari{font-size:12px;font-weight:700;color:var(--amaran);margin-bottom:2px}
.gel .ms{font-size:11px;opacity:.82;text-align:right;margin-top:2px}
.gel.ralat{background:#3a1d1d;color:#ffb4b4}
.gel.alat{background:transparent;border:1px dashed var(--garis);color:var(--lemah);font-size:13px;font-family:ui-monospace,monospace}
.sistem{align-self:center;color:var(--lemah);font-size:13px;text-align:center;padding:4px 12px;max-width:92%}
.kumpul{display:flex;gap:8px;align-items:flex-end;align-self:flex-start;max-width:92%}.kumpul .gel{max-width:100%}
.kad-pj{display:block;text-align:left;width:100%;margin-top:6px;background:var(--kad2);border:1px solid var(--garis);border-radius:12px;padding:10px;color:var(--teks)}
.kad-pj .palang{margin-top:6px}
.menaip{color:var(--lemah);font-size:13px;padding:4px 14px;min-height:24px}
.menaip i{display:inline-block;width:6px;height:6px;margin:0 1px;border-radius:50%;background:var(--lemah);animation:lompat 1s infinite}
.menaip i:nth-of-type(3){margin-right:6px}.menaip i:nth-child(2){animation-delay:.15s}.menaip i:nth-child(3){animation-delay:.3s}
@keyframes lompat{0%,60%,100%{opacity:.3}30%{opacity:1}}
.kotak{position:relative;display:flex;gap:8px;align-items:flex-end;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--garis);background:var(--bg)}
.kotak textarea{min-height:44px;height:44px;max-height:160px;resize:none;border-radius:22px;padding:10px 14px}
.kotak .hntr{border-radius:50%;width:44px;padding:0;flex:none}
.baca-sahaja{padding:12px;text-align:center;color:var(--lemah);border-top:1px solid var(--garis)}
.sebut{position:absolute;left:10px;right:10px;bottom:100%;background:var(--kad);border:1px solid var(--garis);border-radius:12px;max-height:240px;overflow-y:auto;z-index:8;box-shadow:0 -4px 16px #0008}
.sebut{list-style:none;margin:0;padding:4px 0}.sebut li{display:flex;align-items:center;gap:10px;padding:0 14px;min-height:44px;cursor:pointer}
.sebut li.pilih-ini,.sebut li:hover{background:var(--kad2)}
.henti{background:var(--bahaya);border-color:var(--bahaya);color:#fff;padding:6px 16px;align-self:center;margin:2px 0 6px;border-radius:22px}
.kira{font-size:12px;color:var(--lemah);text-align:right}

/* Tetapan (gaya rujukan-usage) */
.kumpulan-baris{background:var(--kad);border:1px solid var(--garis);border-radius:18px;margin:0 0 18px;overflow:hidden}
.kumpulan-baris>a,.kumpulan-baris>button,.kumpulan-baris>.brs-t{display:flex;width:100%;align-items:center;gap:10px;justify-content:space-between;padding:14px 18px;min-height:56px;color:var(--teks);background:transparent;border:0;border-radius:0;border-bottom:1px solid var(--garis);font-size:16px;text-align:left}
.kumpulan-baris>:last-child{border-bottom:0}
.kumpulan-baris .nilai{color:var(--lemah);margin-left:auto}
.kumpulan-baris .anak{padding:14px 18px}.kumpulan-baris .anak textarea{margin-bottom:10px}
.kumpulan-baris small{display:block;color:var(--lemah);font-size:13px}
.kepala-kecil{color:var(--lemah);font-size:14px;margin:0 0 8px 18px}section{margin-top:6px}
.profil{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;margin:0 0 20px}.profil h1{margin:6px 0 0}
.inisial{width:40px;height:40px;border-radius:50%;background:var(--kad2);display:flex;align-items:center;justify-content:center;font-weight:700}
.merah{color:var(--bahaya)!important}
.peratus-besar{font-size:44px;font-weight:700;margin:4px 0}
.kumpulan-baris>.brs-t.duaan{flex-direction:column;align-items:stretch;gap:6px}.anak .baris input[type=number]{width:120px;flex:none}
.kecil{font-size:12px}.garis{border-top:1px solid var(--garis);padding:8px 0}
.medan{margin-bottom:4px}.borang .pilih .av{margin-left:2px}
.warna{width:44px;height:44px;border-radius:50%;padding:0;border:3px solid var(--garis)}.warna.pilih-ini{border-color:var(--teks)}
.av.sederhana{width:72px;height:72px}.av-pra{width:88px;display:flex;justify-content:center}
.lamp{list-style:none;margin:6px 0 0;padding:0;font-size:13px;opacity:.85}
dialog.tabir{width:520px}.senarai-tugas{list-style:none;padding:0;margin:8px 0}.senarai-tugas li{padding:6px 0;border-bottom:1px solid var(--garis)}
.tjk-chat .av-grp{transform:scale(.8)}
.id-ejen{display:inline-block;font:600 11px/1.5 ui-monospace,monospace;color:var(--lemah,#8a8f98);background:var(--kad2);border:1px solid var(--garis);border-radius:6px;padding:0 5px;vertical-align:middle;white-space:nowrap}
.akses{margin:.25rem 0;font-weight:600}
.lanjutan summary{cursor:pointer;color:var(--lemah,#9ca3af);padding:.4rem 0;min-height:44px;display:flex;align-items:center}
.lanjutan .pilih{display:flex}
.kunci{margin-left:auto;font-size:.8rem;font-weight:600;color:var(--amaran,#b45309);background:var(--kad2);border-radius:999px;padding:2px 8px;white-space:nowrap}
/* 0.5.4.1 U1: baris fail kongsi group */
a.brs-t[download]{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px;padding:12px 14px;box-sizing:border-box;border-bottom:1px solid var(--garis)}
a.brs-t[download]:last-child{border-bottom:0}
a.brs-t[download] .baris{min-width:0;overflow-wrap:anywhere}
a.brs-t[download] .nilai{flex:none;white-space:nowrap}

/* 0.5.6.6 status kerja */
.av .dot-kerja{position:absolute;right:-1px;bottom:-1px;width:28%;height:28%;min-width:9px;min-height:9px;max-width:16px;max-height:16px;border-radius:50%;background:#22c55e;border:2px solid var(--bg,#fff);box-sizing:border-box;z-index:2;animation:dotkerja 1.6s ease-in-out infinite}
@keyframes dotkerja{50%{box-shadow:0 0 0 4px rgba(34,197,94,.25)}}
.status-kerja{display:flex;align-items:center;gap:8px;padding:4px 14px 6px;font-size:13px;color:var(--lemah,#888);line-height:1.35}
.status-kerja[hidden]{display:none}
.status-kerja .sk-dot{flex:none;width:8px;height:8px;border-radius:50%;background:#22c55e;animation:dotkerja 1.6s ease-in-out infinite}
.status-kerja .sk-teks{min-width:0;overflow-wrap:anywhere}
@media (max-width:600px){.status-kerja{font-size:12px;padding:3px 10px 5px}}
/* 0.5.7.0 lampiran */
.lp-wrap{display:contents}.lp-btn{flex:none;width:44px;height:44px;border-radius:50%;padding:0;font-size:20px;background:transparent;border:1px solid var(--garis)}
.lp-pra{position:absolute;left:10px;right:10px;bottom:100%;display:flex;flex-wrap:wrap;gap:6px;padding:6px;background:var(--bg);border-top:1px solid var(--garis)}
.lp-cip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:4px 8px;border:1px solid var(--garis);border-radius:14px;font-size:13px}
.lp-cip img{width:32px;height:32px;object-fit:cover;border-radius:6px}.lp-cip.lp-ralat{border-color:#d33;color:#d33}
.lp-cip .lp-nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.lp-x{border:0;background:none;padding:0 2px;font-size:16px;cursor:pointer}
.lp-papar{display:flex;flex-wrap:wrap;gap:6px;opacity:1}.lp-img img{display:block;max-width:220px;max-height:220px;border-radius:10px;object-fit:cover}
.lp-fail{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--garis);border-radius:10px;text-decoration:none;color:inherit;max-width:100%}
.lp-fail .lp-nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.lp-fail .lp-sz{opacity:.7;font-size:12px}

/* 0.5.7.6 (C-235): Salin & Sunting Mesej Chat */
.gel { position: relative; }
.gel-kaki {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  margin-top: 4px;
  padding-top: 2px;
  font-size: 11px;
}
.gel.bot .gel-kaki { justify-content: space-between; }
.gel.saya .gel-kaki { justify-content: flex-end; }
.gel-aksi {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.btn-aksi {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 6px;
  color: inherit;
  font-size: 11px;
  padding: 2px 7px;
  cursor: pointer;
  opacity: 0.8;
  display: inline-flex;
  align-items: center;
  gap: 3px;
  line-height: 1.3;
  transition: all 0.15s ease;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.btn-aksi:hover, .btn-aksi:active {
  opacity: 1;
  background: rgba(255, 255, 255, 0.18);
  border-color: rgba(255, 255, 255, 0.28);
}
.btn-aksi.disalin {
  background: #059669 !important;
  color: #fff !important;
  border-color: #10b981 !important;
  opacity: 1 !important;
}

/* Sepanduk mod sunting di atas kotak mesej */
.bar-mod-sunting {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 12px;
  background: var(--kad2, #1e293b);
  border-top: 1px solid var(--garis, #334155);
  border-left: 4px solid #f59e0b;
  font-size: 12px;
  color: var(--fg, #f8fafc);
  border-radius: 6px 6px 0 0;
  box-sizing: border-box;
}
.bar-mod-sunting .tajuk {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
}
.bar-mod-sunting .btn-ganti {
  background: #f59e0b;
  color: #000;
  border: 0;
  border-radius: 4px;
  padding: 4px 9px;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}
.bar-mod-sunting .btn-ganti:hover {
  background: #d97706;
}
.bar-mod-sunting .btn-batal {
  background: transparent;
  color: inherit;
  border: 1px solid rgba(255,255,255,0.2);
  border-radius: 4px;
  padding: 3px 8px;
  font-size: 11px;
  cursor: pointer;
  white-space: nowrap;
}
.bar-mod-sunting .btn-batal:hover {
  background: rgba(255,255,255,0.1);
}

/* C-294: Markdown kemas */
.md-jadual{overflow-x:auto;margin:6px 0}.md table{border-collapse:collapse;font-size:13px;min-width:50%}
.md th,.md td{border:1px solid var(--garis);padding:4px 8px;text-align:left;vertical-align:top}
.md th{background:#ffffff12;font-weight:600}.md tr:nth-child(even) td{background:#ffffff06}
.md blockquote{margin:4px 0;padding:2px 10px;border-left:3px solid var(--garis);opacity:.9}
.md hr{border:0;border-top:1px solid var(--garis);margin:8px 0}.md ul,.md ol{margin:2px 0 6px;padding-left:20px}
.sistem .md{display:inline-block;text-align:left}

/* C-295 chat kemas */
.md.lipat{max-height:420px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 75%,transparent);mask-image:linear-gradient(#000 75%,transparent)}
.btn-lipat{background:none;border:0;color:var(--utama);font-size:13px;font-weight:600;padding:4px 0;cursor:pointer}
details.teknikal,details.lap-butiran{margin-top:6px;font-size:12px;color:var(--lemah)}
details.lap-butiran{font-size:inherit;color:inherit}
details.teknikal summary,details.lap-butiran summary,details.lipat-persona summary{cursor:pointer;color:var(--lemah);font-size:12px;user-select:none}
details.teknikal ul{margin:4px 0 0 16px;padding:0}
.gel.laporan{border-left:3px solid var(--utama)}
.gel .md ol,.gel .md ul{padding-left:22px}.gel .md ol ol,.gel .md li>ul{margin:2px 0}
.gel .md a{word-break:break-all}
.brs .nm{max-width:100%;display:block}
.brs .isi{min-width:0;flex:1}.brs .t1{display:flex;gap:6px;min-width:0}.brs .t1 .nm{flex:1;min-width:0}
.brs .pr{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;min-width:0}
.kl-isi{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0;flex:1}
.kl-tajuk{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.kl-kemajuan{font-size:12px;color:var(--lemah);width:100%}
.lencana{font-size:11px;font-weight:600;border-radius:10px;padding:1px 8px;background:var(--kad2);color:var(--lemah)}
.lencana.st-selesai{background:#1f7a3a22;color:#2e9d50}.lencana.st-gagal{background:#c0392b22;color:#e05545}
.lencana.st-dibatalkan,.lencana.st-dihentikan{background:#88888822;color:#999}.lencana.st-berjalan{background:#d4a01722;color:#d4a017}

/* C-296 meta row, chips, code boxes, typography, indicator */
.gel-kaki{display:flex!important;align-items:center;gap:6px;margin-top:4px;opacity:.72;transition:opacity .15s}
.gel:hover .gel-kaki,.gel:focus-within .gel-kaki{opacity:1}
.gel-kaki .ms{margin:0!important;font-size:11px}
.gel-aksi{display:flex!important;align-items:center;gap:2px}
.gel .btn-aksi,.btn-aksi{background:none!important;border:0!important;box-shadow:none!important;padding:3px 5px!important;min-height:0!important;font-size:11px!important;line-height:1;color:var(--lemah)!important;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center}
.btn-aksi:hover{background:#ffffff14!important;color:inherit!important}.btn-aksi.disalin{color:#2e9d50!important}
.ik{display:inline-flex;line-height:0}
.lap-butiran{margin-top:6px;padding-top:6px;border-top:1px solid var(--garis)}
.md{line-height:1.6;max-width:72ch;overflow-wrap:break-word}
.md p{margin:0 0 8px}.md li{margin:2px 0}.md li>p{margin:0}
.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{margin:14px 0 6px;line-height:1.3;font-weight:700;letter-spacing:-0.015em;color:#f4f7fc}.md>:first-child{margin-top:0}
.md h2{font-size:18px}.md h3{font-size:16.5px}.md h4,.md h5,.md h6{font-size:15px}
/* C-306: tajuk markdown di awal gelembung bukan slot nama pengirim */
.gel .md > .md-h:first-child,.gel .md > :is(h1,h2,h3,h4,h5,h6):first-child{color:#f4f7fc;font-size:16.5px;font-weight:700;margin:0 0 10px;line-height:1.35}
.md code{font:12.5px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#ffffff12;border:1px solid #ffffff1f;border-radius:5px;padding:1px 5px;white-space:break-spaces}
.md .kod{margin:8px 0;border:1px solid var(--garis);border-radius:10px;overflow:hidden;background:#0d1117}
.kod-kepala{display:flex;justify-content:space-between;align-items:center;padding:3px 6px 3px 10px;background:#ffffff0d;font:11px ui-monospace,monospace;color:#9aa4b2;text-transform:lowercase}
.kod-salin{background:none;border:0;color:#9aa4b2;cursor:pointer;padding:3px 5px;border-radius:5px;line-height:0}.kod-salin:hover{background:#ffffff1a;color:#fff}.kod-salin.disalin{color:#3fb950}
.md .kod pre{margin:0;border:0;border-radius:0;background:transparent;padding:10px 12px;white-space:pre;overflow-x:auto;color:#e6edf3}
.md .kod pre code{background:none;border:0;padding:0;font-size:12.5px;white-space:pre}
.md blockquote{margin:8px 0;padding:6px 12px;border-left:3px solid var(--utama);background:#ffffff08;border-radius:0 8px 8px 0}
.md table{font-size:13px;border-radius:8px}.md th,.md td{padding:6px 10px}
.status-kerja{display:none!important}
.menaip{padding:6px 14px}
.penunjuk{display:inline-flex;align-items:center;gap:10px;background:var(--kad2);border:1px solid var(--garis);border-radius:16px 16px 16px 4px;padding:7px 12px;max-width:min(92%,560px);color:var(--lemah);font-size:13px}
.penunjuk .pn-teks{flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.penunjuk .titik3{display:inline-flex;flex:none;margin-inline-end:2px}

/* C-297 merged report badge */
.lencana-lap{display:inline-block;font-size:11px;font-weight:600;border-radius:10px;padding:1px 8px;margin-bottom:4px;background:#1f7a3a22;color:#2e9d50}
.lencana-lap.s⚠{background:#d4a01722;color:#d4a017}.lencana-lap.s❌{background:#c0392b22;color:#e05545}

/* C-300: jadual dalam gelembung skrol mendatar */
.md-jadual,.md .md-jadual{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}.md table{display:table;width:max-content;max-width:none}.md th,.md td{min-width:90px;white-space:normal;vertical-align:top}

/* C-309: butang henti bulat, di tempat butang hantar */
.kotak .henti,.hantar .henti{border-radius:50%;width:44px;height:44px;padding:0;flex:none;align-self:flex-end;margin:0;font-size:16px;line-height:1}
.henti.sah{box-shadow:0 0 0 3px rgba(255,80,80,.45)}

/* C-311: menu pilihan kemas */
select.pk-asal{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;border:0!important}
.pk-butang{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;padding:8px 14px;border-radius:12px;border:1px solid var(--garis);background:var(--bg);color:var(--teks);text-align:left;cursor:pointer;font:inherit;transition:border-color .15s,background .15s}
.pk-butang:hover{border-color:color-mix(in srgb,var(--teks) 30%,var(--garis))}
.pk-butang:focus-visible{outline:2px solid #4f8cff;outline-offset:1px}
.pk-butang:disabled{opacity:.5;cursor:default}
.pk-teks{display:flex;flex-direction:column;min-width:0;flex:1}
.pk-butang .pk-u{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.pk-butang .pk-k{font-size:12px;color:var(--lemah);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pk-anak{color:var(--lemah);font-size:18px;line-height:1;margin-top:-6px}
.pk-lapis{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.45);display:flex;align-items:flex-end;justify-content:center;animation:pkFade .12s}
.pk-lapis.pop{background:transparent;display:block}
.pk-senarai{background:#1c1c1e;border:1px solid var(--garis);color:var(--teks);width:100%;max-width:560px;max-height:70vh;overflow:auto;border-radius:18px 18px 0 0;padding:8px;box-shadow:0 12px 40px rgba(0,0,0,.5);animation:pkNaik .16s ease-out;padding-bottom:max(8px,env(safe-area-inset-bottom))}
.pk-lapis.pop .pk-senarai{position:fixed;border-radius:14px;max-width:none;animation:pkFade .1s}
.pk-tajuk{font-size:12px;color:var(--lemah);padding:8px 12px 6px;text-transform:uppercase;letter-spacing:.04em}
.pk-kump{font-size:11px;color:var(--lemah);padding:10px 12px 4px}
.pk-item{display:grid;grid-template-columns:1fr auto;grid-template-areas:"u t" "k t";align-items:center;width:100%;text-align:left;background:none;border:0;color:inherit;font:inherit;padding:10px 12px;border-radius:10px;cursor:pointer;min-height:44px;margin:0}
.pk-item:hover,.pk-item:focus-visible{background:rgba(255,255,255,.07);outline:none}
.pk-item .pk-u{grid-area:u}
.pk-item .pk-k{grid-area:k;font-size:12px;color:var(--lemah);margin-top:2px}
.pk-tanda{grid-area:t;color:#4f8cff;visibility:hidden;margin-left:10px}
.pk-item.pilih{background:rgba(79,140,255,.12)}
.pk-item.pilih .pk-tanda{visibility:visible}
.pk-item:disabled{opacity:.4}
@keyframes pkNaik{from{transform:translateY(30px);opacity:.5}to{transform:none;opacity:1}}
@keyframes pkFade{from{opacity:0}to{opacity:1}}
/* fieldset kad yang kemas (Model per peranan dsb) */
fieldset{border:1px solid var(--garis);border-radius:14px;padding:12px 14px 14px;margin:0 0 12px;background:rgba(255,255,255,.02)}
fieldset legend{padding:0 6px;font-weight:600;font-size:13px;color:var(--teks)}

/* C-313: butang Laporan penuh jelas */
.lap-butiran{margin-top:6px;padding-top:8px;border-top:1px solid var(--garis)}

/* C-317: pakej model worker */
.pkj-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 12px}
@media(min-width:800px){.pkj-grid{grid-template-columns:repeat(4,1fr)}}
.pkj-kad{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:12px;border-radius:14px;border:1px solid var(--garis);background:var(--bg);color:var(--teks);font:inherit;cursor:pointer;min-height:108px}
.pkj-kad:hover{border-color:color-mix(in srgb,var(--teks) 30%,var(--garis))}
.pkj-kad.aktif{border-color:#4f8cff;background:rgba(79,140,255,.12);box-shadow:0 0 0 1px #4f8cff}
.pkj-kad b{font-size:15px}
.pkj-kad .pkj-desc{font-size:12px;color:var(--lemah);line-height:1.35}
.pkj-kad .pkj-harga{font-size:11px;color:var(--lemah);margin-top:auto}
.pkj-suiz{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border:1px solid var(--garis);border-radius:12px;margin:0 0 12px;background:rgba(255,255,255,.02)}
.pkj-suiz input{margin-top:3px;width:18px;height:18px;accent-color:#4f8cff;flex:none}
.pkj-jadual{width:100%;overflow-x:auto}
.pkj-kepala{display:none}
.pkj-row{display:grid;gap:6px;padding:10px 0;border-bottom:1px solid var(--garis)}
.pkj-row .j{font-weight:550}
.pkj-row .m,.pkj-row .h{font-size:13px;color:var(--lemah)}
.pkj-row select{width:100%}
@media(min-width:720px){
  .pkj-kepala{display:grid;grid-template-columns:minmax(150px,1.3fr) minmax(140px,1.4fr) minmax(92px,.7fr);gap:6px;padding:4px 0 8px;font-size:11px;color:var(--lemah);text-transform:uppercase;letter-spacing:.04em}
  .pkj-row{grid-template-columns:minmax(150px,1.3fr) minmax(140px,1.4fr) minmax(92px,.7fr);align-items:center}
}

.pkj-suiz{flex-wrap:wrap}
.pkj-suiz label{display:flex;gap:12px;align-items:flex-start;flex:1;min-width:0}
.pkj-suiz select{width:100%;max-width:280px}
.pkj-komposer{border-top:1px solid var(--garis);background:var(--bg)}
.pkj-komposer .kotak{border-top:0;padding-top:6px}
.pkj-pills{display:flex;gap:6px;padding:8px 10px 0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.pkj-pills::-webkit-scrollbar{display:none}
.pkj-pill{flex:none;border:1px solid var(--garis);background:transparent;color:var(--teks);border-radius:999px;padding:5px 12px;font:inherit;font-size:13px;cursor:pointer;min-height:32px;line-height:1.2}
.pkj-pill:hover{border-color:color-mix(in srgb,var(--teks) 30%,var(--garis))}
.pkj-pill.aktif{border-color:#4f8cff;background:rgba(79,140,255,.15)}
.pk-senarai.ada-susun{display:flex;flex-direction:column;padding-top:0;padding-bottom:0;overflow:hidden}
.pk-senarai.ada-susun .pk-isi{overflow:auto;flex:1 1 auto;min-height:0;padding-bottom:max(8px,env(safe-area-inset-bottom))}
.pk-susun-bar{position:relative;flex:none;z-index:3;display:flex;justify-content:flex-end;align-items:center;height:40px;padding:0 2px;background:#1c1c1e}
button.pk-susun{width:40px;height:40px;min-width:40px;min-height:40px;padding:0;border:0;border-radius:10px;background:transparent;color:#9a9a9a;box-shadow:none}
button.pk-susun svg{display:block;margin:auto}
button.pk-susun:hover,button.pk-susun[aria-expanded=true]{background:rgba(255,255,255,.08);color:#f1f1f1}
.pk-susun-menu{position:absolute;top:36px;right:6px;z-index:4;min-width:196px;padding:4px;background:#2c2c2e;border:1px solid #3a3a3c;border-radius:12px;box-shadow:0 10px 28px rgba(0,0,0,.5)}
.pk-susun-menu button{display:flex;width:100%;min-width:0;min-height:40px;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:6px 10px;border:0;border-radius:8px;background:transparent;color:#f2f2f2;font:13px/1.2 inherit;text-align:left}
.pk-susun-menu button:hover{background:rgba(255,255,255,.06)}
.pk-susun-menu .pk-susun-tik{width:1em;color:#7eb0ff;font-size:13px;text-align:center}

/* C-318 + C-321: cip model + status tunggu kerja latar */
.kl-cip-baris{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.kl-cip{font-size:12px;line-height:1.4;padding:2px 8px;border-radius:999px;background:var(--latar-2,#eef1f5);border:1px solid var(--garis,#e2e5ea);color:var(--teks-2,#445)}
.kl-kad{flex-direction:column;align-items:stretch;gap:2px}
.kl-kepala{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;width:100%}
.kumpulan-baris>.brs-t.kl-kad{align-items:stretch;text-align:left;justify-content:flex-start}
.kl-isi{justify-content:flex-start;text-align:left}
.kl-tajuk{text-align:left}
.kl-kepala>button{flex:none;align-self:flex-start}
.lencana.st-menunggu_jawapan,.lencana.st-menunggu_muktamad{background:#fff4d6;color:#7a5b00}
.lencana.st-mengumpul{background:#e7f0ff;color:#1a4fa0}

.kl-anak{margin-top:6px;padding:4px 0 2px 10px;border-left:2px solid var(--garis,#d8dce3);display:flex;flex-direction:column;gap:5px}
.kl-anak-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:12.5px}
.kl-anak-tajuk{font-weight:550}
.kl-anak-meta{color:var(--lemah,#667);font-size:12px}

/* C-327/C-328: tipografi + matematik yang menonjol daripada ayat biasa */
.md p{margin:0.4em 0}
.md p:first-child{margin-top:0}
.md p:last-child{margin-bottom:0}
.md del{opacity:.85}
.md strong{font-weight:700;color:#f4f7fc}
.md-math{display:inline;overflow-wrap:normal;word-break:normal;color:#e8eefc;vertical-align:middle}
.md-math .katex{font-size:1.28em;line-height:1.15;color:#e8eefc;text-rendering:optimizeLegibility}
.md-math-d{display:block;overflow-x:auto;overflow-y:hidden;margin:14px 0;padding:14px 12px;text-align:center;background:#ffffff0c;border:1px solid #ffffff18;border-radius:12px}
.md-math-d .katex,.md-math-d .katex-display{font-size:1.42em}
.md-math .katex-display{margin:0;overflow-x:auto;overflow-y:hidden}
.gel.saya .md-math,.gel.saya .md-math .katex{color:#fff}

/* C-330/C-335: butiran teknikal ringkas tanpa kotak; jadual kekal kemas */
details.teknikal{margin-top:10px;padding:0;border:0;border-radius:0;background:none;font-size:13px;color:var(--teks);line-height:1.55}
details.teknikal summary{cursor:pointer;color:var(--lemah);font-size:12px;font-weight:600;user-select:none;list-style-position:outside;padding:0}
details.teknikal ul{margin:8px 0 0;padding:0;list-style:none}
details.teknikal li.tk-item{padding:6px 0;border:0;overflow-wrap:break-word}
details.teknikal li.tk-item:first-child{padding-top:2px}
details.teknikal .tk-label{display:block;font-weight:650;font-size:11px;letter-spacing:.02em;color:var(--lemah);margin-bottom:2px}
details.teknikal .tk-isi{display:block;color:var(--teks)}
details.teknikal code{font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:none;border:0;padding:0;color:#c5cdd8;white-space:break-spaces}
.gel .md table{width:100%;max-width:100%}
.gel .md th,.gel .md td{min-width:0;white-space:normal}

/* C-331: butang salin & sunting pada mesej sendiri — ikon putih, rapat, tanpa kotak */
.gel.saya .gel-kaki{opacity:1}
.gel.saya .gel-kaki .ms{color:rgba(255,255,255,.88)}
.gel.saya .gel-aksi{gap:8px}
.gel.saya .btn-aksi,.gel.saya .gel .btn-aksi{
  color:#fff!important;
  background:none!important;
  border:0!important;
  box-shadow:none!important;
  opacity:.92!important;
  min-width:0!important;
  min-height:0!important;
  width:auto!important;
  padding:2px!important;
}
.gel.saya .btn-salin{padding-right:2px!important;margin-right:0}
.gel.saya .btn-edit{padding-left:2px!important}
.gel.saya .btn-aksi:hover,.gel.saya .btn-aksi:focus-visible{
  background:none!important;
  border:0!important;
  color:#fff!important;
  opacity:1!important;
}
.gel.saya .btn-aksi.disalin{color:#d1fae5!important;background:none!important;border:0!important}
.gel.saya .btn-aksi .ik,.gel.saya .btn-aksi svg{color:#fff;stroke:#fff;display:block}

/* C-332: kunci paparan chat kepada viewport nampak — tak ditindih papan kekunci */
html{--vvh:100dvh;--vvt:0px}
@media (max-width:899px){
  body.p2:has(.skrin-chat){overflow:hidden}
  body.p2:has(.skrin-chat) #app,body.p2:has(.skrin-chat) #utama{height:var(--vvh,100dvh);max-height:var(--vvh,100dvh);overflow:hidden}
}

/* C-336: butang lipat pada mesej sendiri nampak jelas di atas gelembung biru */
.gel.saya .btn-lipat{color:#fff;opacity:.95}
.gel.saya .btn-lipat:hover{opacity:1}

/* C-347: hasil berterusan, pautan senyap, fail padat — tiada kad/CTA besar. */
.gel.bot .md{line-height:1.68}
.gel .hasil-tajuk{font-size:13px;font-weight:500;color:var(--lemah);margin-bottom:12px}
.gel .hasil-tajuk strong{font-weight:600;color:var(--teks)}
.gel details.laporan-lanjut,.gel details.hasil-pekerja{margin:12px 0 4px;padding:0;border:0;background:none;color:inherit;font-size:inherit}
.gel details.laporan-lanjut>summary,.gel details.hasil-pekerja>summary{display:list-item;list-style-position:inside;width:fit-content;max-width:100%;padding:8px 0;min-height:40px;box-sizing:border-box;font-size:13px;line-height:24px;font-weight:500;color:var(--lemah);cursor:pointer;overflow-wrap:anywhere}
.gel details.laporan-lanjut>summary:hover,.gel details.hasil-pekerja>summary:hover{color:var(--teks)}
.gel details.laporan-lanjut[open]>.md,.gel details.hasil-pekerja[open]>.isi-gel{padding-top:8px}
.gel details.hasil-pekerja .hasil-tajuk{margin-top:0}
.gel .lp-papar{display:flex;flex-direction:column;gap:10px;margin:12px 0 4px;opacity:1;max-width:100%}
.lp-item{min-width:0;max-width:100%}
.lp-item .lp-fail{display:flex;align-items:center;gap:12px;padding:6px 0;border:0;border-radius:0;background:none;max-width:100%;min-width:0}
.lp-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.lp-item .lp-fail .lp-nm{max-width:none;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;font-size:13px;font-weight:550;line-height:1.45}
.lp-item .lp-sz,.lp-path{color:var(--lemah);font-size:11px;line-height:1.5;opacity:1;overflow-wrap:anywhere}
.lp-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px;flex-shrink:0}
.lp-actions a{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;color:var(--teks);font-size:12px;text-decoration:none!important;border:0;background:none;border-radius:6px;padding:0 6px;box-sizing:border-box}
.lp-actions a:hover{background:#ffffff0a;text-decoration:underline!important}
.lp-item .lp-img{display:block;width:fit-content;max-width:100%}
.lp-item .lp-img img{display:block;max-width:100%;width:auto;height:auto;max-height:320px;object-fit:contain;border-radius:6px}
.gel summary:focus-visible,.lp-actions a:focus-visible,.lp-img:focus-visible,.btn-aksi:focus-visible,.btn-lipat:focus-visible{outline:2px solid var(--utama);outline-offset:3px}
@media(pointer:coarse){.lp-actions a,.gel details.laporan-lanjut>summary,.gel details.hasil-pekerja>summary{min-width:44px;min-height:44px}}
@media(max-width:480px){.lp-item .lp-fail{gap:6px}.lp-actions{gap:0}.gel .md{max-width:100%}}

/* Ikon kekal kecil; sasaran sentuh berasingan dan tidak bertindih. */
.gel .btn-aksi,.gel.saya .btn-aksi{min-width:36px!important;min-height:36px!important;justify-content:center;padding:6px!important;background:none!important;border:0!important}
.gel.saya .gel-aksi{gap:2px}
@media(pointer:coarse){.gel .btn-aksi,.gel.saya .btn-aksi{min-width:44px!important;min-height:44px!important}}
.gel.bot:not(.ralat):not(.alat){background:transparent;padding:10px 4px;max-width:92%}

/* C-348: nama + DP kecil, identiti bot yang sama; gerak lembut tanpa layout shift. */
.gel .dari-bot{display:flex;align-items:center;gap:8px;margin:0 0 8px;min-height:24px;color:var(--teks);font-weight:600;line-height:1.4}
.gel .dari-bot .nama-bot{min-width:0;overflow-wrap:anywhere}
.av.balasan{width:22px;height:22px;flex:0 0 22px}
/* C-349: gerak boleh dibaca pada 22px; kelip bentuk dalaman memecah simetri bulat. */
.av-gerak{animation:dp-hidup 3.6s ease-in-out infinite}
@keyframes dp-hidup{0%,100%{translate:0 0;rotate:-4deg}50%{translate:0 -3px;rotate:4deg}}
.av-gerak::before,.av-gerak::after{animation:dp-kelip 3.6s linear infinite;transform-origin:center}
@keyframes dp-kelip{0%,80%,100%{scale:1 1}88%,92%{scale:1 .2}}
@media(prefers-reduced-motion:reduce){.av-gerak,.av-gerak .dot-kerja{animation:none!important;translate:none;rotate:none}.av-gerak::before,.av-gerak::after{animation:none!important;scale:none}}
.gel .dari-sistem{font-size:11px;font-weight:500;color:var(--lemah);margin-bottom:8px}
.gel.laporan{border-left:0}
/* Laporan lengkap kekal asal di dalam satu lipatan; tiada tajuk status tambahan. */
.gel .hasil-pekerja>.isi-gel>.md+.md{margin-top:12px}
.gel .isi-gel{min-width:0;max-width:100%}
.gel .md-jadual{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;margin:14px 0;-webkit-overflow-scrolling:touch}
.gel .md table{width:max-content;min-width:100%;max-width:none;font-size:14px;line-height:1.6}
.gel .md th,.gel .md td{padding:10px 12px;min-width:9ch;max-width:36ch;white-space:normal;overflow-wrap:anywhere;color:var(--teks);border-color:var(--garis)}
.gel .md th{font-weight:650;background:#ffffff0e;color:var(--teks)}
.gel .md tr:nth-child(even) td{background:#ffffff05}
@media(max-width:480px){.gel .md table{font-size:13.5px}.gel .md th,.gel .md td{padding:9px 10px;max-width:28ch}}

.kumpul,.kumpul>.gel{min-width:0}

/* Desktop kekal dalam menu bot Fasa 3. Baris senarai kekal 72px; butang bawah 48px untuk sentuhan. */
.rumah-bawah:has(a.desktop-kekal){flex-wrap:wrap;background:var(--bg);border-top:1px solid var(--garis)}
a.desktop-kekal{order:-1;flex:1 0 100%;box-sizing:border-box;min-height:48px;display:flex;align-items:center;justify-content:center;border-radius:14px;background:var(--kad2);border:1px solid var(--garis);color:var(--teks);font-weight:600}
a.desktop-kekal.aktif{border-color:var(--utama);color:var(--utama)}
ul.rumah-senarai{padding-bottom:168px}
