
:root{
 /* === DESIGN TOKENS "MJDS — Old Money" — DARK (default) ===
    Palet: hitam pekat & cokelat espresso, aksen maroon terang (terracotta), emas redup.
    Sumber: design_handoff_mjds/tokens/colors.css */
 --bg:#151009;--surface:#231B14;--surface-2:#2F251C;--surface-3:#3B2E23;
 --label:#F6F1E7;--label-2:#C7BCAC;--label-3:#988C7D;
 --separator:rgba(230,225,210,.15);--separator-strong:rgba(230,225,210,.26);--track:#41332A;
 --accent:#D97C60;--accent-2:#EF9F80;--accent-soft:rgba(217,124,96,.18);
 --gold:#D4B26E;--gold-soft:rgba(212,178,110,.16);
 --ok:#82BE9B;--ok-soft:rgba(130,190,155,.16);
 --warn:var(--gold);--warn-soft:var(--gold-soft);
 --info:#A3BAD4;--info-soft:rgba(163,186,212,.16);
 --st-green:var(--ok);--st-yellow:var(--gold);--st-orange:var(--accent);--green:var(--ok);--green-soft:var(--ok-soft);--red:#E8836A;--red-soft:rgba(232,131,106,.16);
 --nav-material:rgba(26,19,13,.88);
 /* alias kosakata mockup (supaya komponen mockup drop-in) */
 --ink:var(--label);--ink-2:var(--label-2);--ink-3:var(--label-3);--line-2:var(--separator-strong);--navbg:var(--nav-material);--hero-sh:0 16px 36px -12px rgba(0,0,0,.6);--ease:var(--ease-out);--ease2:var(--ease-std);
 /* #159 (handoff Claude Design): desainnya dibuat TANPA bisa membaca dash2.html, jadi ia menebak
    palet kita dari screenshot lalu mendeklarasikan token sendiri. Menyalin blok [data-theme]-nya
    akan memberi CC DUA palet paralel yang pelan-pelan menyimpang tiap token MJDS diubah.
    Jadi kosakata desain dipetakan ke token yang SUDAH ADA — mode terang ikut otomatis. */
 --paper:var(--bg);--card:var(--surface);--card2:var(--surface-2);--card3:var(--surface-3);
 --ink2:var(--label-2);--ink3:var(--label-3);--line2:var(--separator-strong);
 --brand:var(--accent);--brandSoft:var(--accent-soft);--brandInk:var(--accbtn-fg);
 /* legacy aliases → token semantik (supaya UI lama ikut) */
 --panel:var(--surface);--panel2:var(--surface-2);--line:var(--separator);--txt:var(--label);--mut:var(--label-2);--acc:var(--accent);--acc2:var(--accent-2);
 --blue:var(--info);--purple:#B3A0C7;--yellow:var(--gold);
 --sh-sm:0 1px 2px rgba(0,0,0,.45),0 8px 28px rgba(0,0,0,.38);--sh-lg:0 18px 48px -16px rgba(0,0,0,.65);--shadow:var(--sh-sm);
 --scrim:rgba(5,5,5,.6);
 --rangebg:rgba(26,19,13,.88);--logingrad:linear-gradient(135deg,#151009,#2B1A10);
 --accbtn-fg:var(--on-accent);
 /* radius */
 --r-card:16px;--r-btn:12px;--r-input:10px;--r-pill:999px;--r-icon:9px;
 /* motion */
 --ease-out:cubic-bezier(.16,1,.3,1);--ease-std:cubic-bezier(.4,0,.2,1);
 --dur-press:120ms;--dur-state:240ms;--dur-enter:480ms;
 /* status */
 --danger:#E8836A;--danger-soft:var(--red-soft);--ok2:var(--ok);--lh-tight:1.2;--lh-body:1.45;--on-accent:#1C0B07;--on-soft:var(--accent-2);
 /* ── TOKEN YATIM YANG DIRESMIKAN (Derry 22 Sep 2026: "14 token yatim itu rapihin juga") ──
    Keempat belasnya selama ini dipakai dalam bentuk ber-cadangan tanpa pernah dideklarasikan:
    JALAN, tetapi cadangannya yang selalu terpakai — artinya SKIN & TEMA tak bisa menyentuhnya
    sama sekali. Aturan berdiri melarang mengganti PEMAKAIANNYA (itu justru mengubah warna yang
    sekarang tampil), jadi yang dibereskan sisi sebaliknya: tokennya dideklarasikan PERSIS senilai
    cadangannya. Hasilnya nol perubahan tampilan hari ini di semua tema & skin, tetapi mulai
    sekarang skin bisa menimpanya seperti token lain.
    Nilai diambil dari cadangan yang sudah dipakai — bukan dipilih ulang. Delapan --sh-* adalah
    warna shift (sumber: _SZ_WARNA). */
 --sh-m:#E8933F;--sh-e:#9B7EDE;--sh-off:#8D97A6;--sh-ph:#34C07C;--sh-duty:#3FB6A8;--sh-mid:#D886C0;--sh-ck:#B98157;--sh-esp:#E0679C;
 --navy:#1F3A54;--amber:#D98A1F;--orange:#E08A3C;--good:#34C28C;--surface3:#2A3140;--ttfs:27px;
 /* --acc-soft dipakai 5x: empat dengan alpha .14, satu .10. Diresmikan di .14 sehingga satu sel
    "Scoring Poin" ikut menjadi .14 — SATU-SATUNYA perubahan tampilan dari sapuan ini, sengaja,
    supaya keluarga sel yang sama tidak berbeda 4 poin alpha tanpa alasan. */
 --acc-soft:rgba(217,124,96,.14);
 /* --muted TIDAK ikut diresmikan: ia bukan satu warna, melainkan SALAH EJA dari --mut yang
    terlanjur dipakai 14x dengan 6 cadangan berbeda. Lima di antaranya cadangannya sudah token
    lain (--mut/--line/--label-3) -> ditunjuk langsung, nol perubahan. Sembilan sisanya abu-abu
    ditulis mati yang SAMA di tema gelap & terang -> diarahkan ke --mut sesuai aturan "teks redup
    -> --mut". Itu memang mengubah warna, dan memang itu perbaikannya: di tema terang teks redup
    tadinya tetap abu-abu tengah (pudar di latar terang), sekarang #6E6055; tiap skin juga dapat
    warna redupnya sendiri (riso #4A4A4A, hud #7fb8cd, anime #8a6b91, dst). */
}
/* ===== TEMA TERANG (Light) — MJDS Old Money: kertas pearl + espresso + maroon ===== */
html[data-theme="light"]{
 --bg:#E1DFD2;--surface:#FBFAF4;--surface-2:#F1EFE4;--surface-3:#E8E5D6;
 --label:#251511;--label-2:#6E6055;--label-3:#94897A;
 --separator:rgba(48,29,23,.11);--separator-strong:rgba(48,29,23,.20);--track:#D6D3C3;
 --accent:#640F07;--accent-2:#8A2A1C;--accent-soft:rgba(100,15,7,.075);
 --gold:#8F6F38;--gold-soft:rgba(143,111,56,.13);
 --ok:#2F6E4F;--ok-soft:rgba(47,110,79,.11);
 --warn:var(--gold);--warn-soft:var(--gold-soft);
 --info:#3E5F80;--info-soft:rgba(62,95,128,.11);
 --st-green:var(--ok);--st-yellow:var(--gold);--st-orange:var(--accent-2);--green:var(--ok);--green-soft:var(--ok-soft);--red:#A3311F;--red-soft:rgba(163,49,31,.10);
 --danger:#A3311F;--danger-soft:var(--red-soft);--ok2:var(--ok);
 --nav-material:rgba(251,250,244,.86);
 --ink:var(--label);--ink-2:var(--label-2);--ink-3:var(--label-3);--line-2:var(--separator-strong);--navbg:var(--nav-material);--hero-sh:0 18px 44px -18px rgba(48,29,23,.28);
 --blue:var(--info);--purple:#6A5387;--yellow:var(--gold);--on-soft:#640F07;--on-accent:#F2EFE4;
 --sh-sm:0 1px 2px rgba(48,29,23,.06),0 6px 20px rgba(48,29,23,.07);--sh-lg:0 18px 44px -18px rgba(48,29,23,.28);--shadow:var(--sh-sm);
 --scrim:rgba(37,21,17,.42);
 --rangebg:rgba(251,250,244,.94);--logingrad:linear-gradient(135deg,#E1DFD2,#F2EFE4);}
html[data-theme="light"] #login .box,html[data-theme="light"] .panel{box-shadow:var(--shadow)}
html[data-theme="light"] .pill.cafe{color:var(--info)}html[data-theme="light"] .pill.deliv{color:var(--gold)}html[data-theme="light"] .pill.ecom{color:var(--purple)}
html[data-theme="light"] .pill.crit{color:var(--danger)}html[data-theme="light"] .pill.warn{color:var(--warn)}html[data-theme="light"] .pill.ok{color:var(--ok)}
html[data-theme="light"] tbody tr.click:hover{background:var(--surface-2)}
.accbtn{background:var(--acc)!important;color:var(--accbtn-fg,#fff)!important}
html[data-theme="light"]{--accbtn-fg:var(--on-accent)}
html[data-theme="light"] #mtog{box-shadow:var(--shadow)}
html[data-theme="light"] .navitem.active{background:var(--accent-soft);color:var(--on-soft)} /* AUDIT KONTRAS #4 */
html[data-theme="light"] .chk.on{color:var(--on-soft)} /* #4a chip filter aktif terbaca di terang */
html[data-theme="light"] .navitem:hover{background:var(--surface-2)}
html[data-theme="light"] #side{border-right-color:var(--separator-strong)}
html[data-theme="light"] .secthead{background:none}
html[data-theme="light"] .bar-cell .b{background:rgba(100,15,7,.14)}
html[data-theme="light"] tbody tr.sel{background:rgba(100,15,7,.10)}
html[data-theme="light"] #gsres{box-shadow:0 10px 30px rgba(48,29,23,.15)}
/* ===== SKIN "GELAP KLASIK" — tema gelap netral pra-MJDS (Derry 15 Jul 2026): data-skin="klasik" DI ATAS dark.
   Nilai warna = token dark lama (hitam kebiruan + aksen oranye); tipografi/radius tetap MJDS. */
html[data-theme="dark"][data-skin="klasik"]{
 --bg:#0B0D11;--surface:#1B1F27;--surface-2:#262B34;--surface-3:#323845;
 --label:#F2F4F6;--label-2:#9AA1AC;--label-3:#7E8794;
 --separator:rgba(255,255,255,.10);--separator-strong:rgba(255,255,255,.14);--track:#2F353F;
 --accent:#F2914F;--accent-2:#FFB070;--accent-soft:rgba(242,145,79,.15);
 --gold:#dcbb63;--gold-soft:rgba(220,187,99,.16);
 --ok:#34C28C;--ok-soft:rgba(52,194,140,.15);
 --warn:var(--gold);--warn-soft:var(--gold-soft);
 --info:#5fa3df;--info-soft:rgba(95,163,223,.16);
 --st-green:#34C28C;--st-yellow:#F2C94C;--st-orange:#F2914F;--green:#34C28C;--green-soft:rgba(52,194,140,.15);--red:#E5705F;--red-soft:rgba(229,112,95,.15);
 --nav-material:rgba(23,26,32,.82);--line-2:rgba(255,255,255,.14);
 --blue:#5fa3df;--purple:#a98ae0;--yellow:#dcbb63;
 --sh-sm:0 1px 2px rgba(0,0,0,.4),0 8px 30px rgba(0,0,0,.5);--sh-lg:0 18px 48px -16px rgba(0,0,0,.65);--shadow:var(--sh-sm);
 --scrim:rgba(5,7,10,.6);
 --rangebg:rgba(12,14,18,.9);--logingrad:linear-gradient(135deg,#0C0E12,#1d1308);
 --danger:#E5705F;--danger-soft:var(--red-soft);--ok2:var(--ok);--on-accent:#1a1206;--on-soft:var(--accent);
}
/* Ikut preferensi sistem bila belum dipaksa data-theme (anti-flash sebelum JS applyTheme jalan).
   Setelah JS jalan, data-theme selalu di-set eksplisit; default tanpa pilihan tersimpan = ikut sistem (lihat init THEME_KEY). */
@media (prefers-color-scheme: light){
 html:not([data-theme="dark"]):not([data-theme="light"]){
  --bg:#E1DFD2;--surface:#FBFAF4;--surface-2:#F1EFE4;--surface-3:#E8E5D6;
  --label:#251511;--label-2:#6E6055;--label-3:#94897A;
  --separator:rgba(48,29,23,.11);--separator-strong:rgba(48,29,23,.20);--track:#D6D3C3;
  --accent:#640F07;--accent-2:#8A2A1C;--accent-soft:rgba(100,15,7,.075);
  --gold:#8F6F38;--gold-soft:rgba(143,111,56,.13);
  --ok:#2F6E4F;--ok-soft:rgba(47,110,79,.11);
  --warn:var(--gold);--warn-soft:var(--gold-soft);
  --info:#3E5F80;--info-soft:rgba(62,95,128,.11);
  --st-green:var(--ok);--st-yellow:var(--gold);--st-orange:var(--accent-2);--green:var(--ok);--green-soft:var(--ok-soft);--red:#A3311F;--red-soft:rgba(163,49,31,.10);
  --danger:#A3311F;--danger-soft:var(--red-soft);--ok2:var(--ok);
  --nav-material:rgba(251,250,244,.86);
  --line-2:var(--separator-strong);--hero-sh:0 18px 44px -18px rgba(48,29,23,.28);
  --blue:var(--info);--purple:#6A5387;--yellow:var(--gold);--on-soft:#640F07;--on-accent:#F2EFE4;--accbtn-fg:var(--on-accent);
  --sh-sm:0 1px 2px rgba(48,29,23,.06),0 6px 20px rgba(48,29,23,.07);--sh-lg:0 18px 44px -18px rgba(48,29,23,.28);--shadow:var(--sh-sm);
  --scrim:rgba(37,21,17,.42);
  --rangebg:rgba(251,250,244,.94);--logingrad:linear-gradient(135deg,#E1DFD2,#F2EFE4);
 }
}
/* ===== SKIN "VISUAL PLAYBOOK" — dari brand book MKMR (Figma "eksplore mkmr", 21 Agu 2026).
   Dipasang DI ATAS tema Terang: data-theme=light + data-skin=playbook.
   Palet dibaca dari RENDER prototipe, BUKAN dari color styles di berkasnya — halaman "Colors"
   di playbook tak bisa dicapai dari tautan prototipe yang ada (menu tujuh bagian belum dikawat
   di frame kover). Jadi angka di bawah setara-mata, bukan setara-berkas; kalau halaman Colors
   sudah bisa dibuka, tukar hex-nya di satu tempat ini saja.
   Watak playbook: kertas krem, tinta cokelat tua, merah bata untuk judul, kuning emas & biru
   kobalt sebagai warna bab, ungu sebagai aksen jarang. Sudut lembut, nyaris tanpa bayangan. */
html[data-skin="playbook"]{
 --bg:#FAF2DF;--surface:#FFFBF0;--surface-2:#F4E9CF;--surface-3:#ECDCB8;
 --label:#2B1A12;--label-2:#6B5343;--label-3:#7A6553; /* 4,56 di petak — label kapital 12px butuh >=4,5 */
 --separator:#E4D3B0;--separator-strong:#D3BE95;--track:#EFE2C6;--line-2:#D3BE95;
 --accent:#C0392B;--accent-2:#D9503F;--accent-soft:rgba(192,57,43,.10);
 --on-soft:#96271B;--on-accent:#FFFBF0;--accbtn-fg:#FFFBF0;
 --st-green:#3F6644;--green:#3F6644;--green-soft:rgba(63,102,68,.14);--ok:#3F6644;--ok-soft:rgba(63,102,68,.14); /* 5,51 */
 --red:#C0392B;--red-soft:rgba(192,57,43,.12);--danger-soft:rgba(192,57,43,.12);
 --st-yellow:#8A6410;--yellow:#E8B21F;--gold:#E8B21F;--gold-soft:rgba(232,178,31,.16); /* isian tetap terang; sbg teks 4,81 */
 --warn:#8A6410;--warn-soft:rgba(232,178,31,.18);
 --blue:#2F53C8;--purple:#5B2BC9;--info:#2F53C8;
 --nav-material:rgba(250,242,223,.92);
 --sh-sm:0 1px 0 rgba(43,26,18,.05);--shadow:var(--sh-sm);
 --sh-lg:0 14px 34px -18px rgba(43,26,18,.35);--hero-sh:0 10px 24px -14px rgba(43,26,18,.30);
 --rangebg:rgba(250,242,223,.95);--logingrad:linear-gradient(135deg,#FAF2DF,#F4E9CF 55%,#ECDCB8);
 --r-card:14px;--r-btn:11px;--r-icon:9px;--r-pill:999px;
}
/* Tipografi: playbook memakai display gambar-tangan + nav kapital ber-tracking lebar. Font
   tulisannya tidak dibundel (aturan kuota: nol webfont), jadi yang dipinjam PERLAKUANNYA —
   judul tebal rapat, label kecil kapital ber-tracking — memakai tumpukan font sistem. */
html[data-skin="playbook"]{--pb-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace}
html[data-skin="playbook"] h2.title{letter-spacing:-.01em;font-weight:var(--fw-display,600);font-family:var(--font-display)}
/* Nav & label playbook berwatak MONOSPACE ber-tracking lebar. Font aslinya tidak dibundel
   (aturan kuota: nol webfont), jadi yang dipakai tumpukan mono bawaan sistem — jauh lebih
   dekat ke playbook daripada sans, dan nol byte tambahan. */
html[data-skin="playbook"] .sec-label,html[data-skin="playbook"] .sub{
 font-family:var(--pb-mono);text-transform:uppercase;letter-spacing:.16em;font-weight:700}
html[data-skin="playbook"] label,html[data-skin="playbook"] .lbl,html[data-skin="playbook"] th,
html[data-skin="playbook"] .abpdk,html[data-skin="playbook"] .abpdst,html[data-skin="playbook"] .espgrp{
 font-family:var(--pb-mono);text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:700}
/* Angka: tabular + mono supaya kolom waktu/nilai berbaris rapi seperti tabel di playbook. */
html[data-skin="playbook"] .abpdv,html[data-skin="playbook"] .num,html[data-skin="playbook"] td.num,
html[data-skin="playbook"] .jam,html[data-skin="playbook"] .espbig{
 font-family:var(--pb-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
html[data-skin="playbook"] .panel{box-shadow:none;border:1px solid var(--separator)}
html[data-skin="playbook"] #side{border-right-color:var(--separator)}
html[data-skin="playbook"] tbody tr.click:hover{background:#F4E9CF}
html[data-skin="playbook"] tbody tr.sel{background:rgba(192,57,43,.10)}
/* ===== SKIN "LA CABRA" — dipasang DI ATAS tema Terang (data-theme=light + data-skin=lacabra).
   Token dari situs asli lacabra.com: kertas #F8F1EC · tinta olive #34352A · teal #108474 ·
   hairline #CCC4BF · sudut kotak (radius 0) · label uppercase ber-tracking · flat tanpa bayangan. */
html[data-skin="lacabra"]{
 --bg:#F8F1EC;--surface:#FDFAF8;--surface-2:#F3ECE5;
 --label:#34352A;--label-2:#5B5C53;--label-3:#81827B;
 --separator:#E3D9D0;--track:#EBE3DE;--line-2:#CCC4BF;
 --accent:#108474;--accent-2:#1FA38F;--accent-soft:rgba(16,132,116,.10);--on-soft:#0C6B5E;--on-accent:#F8F1EC;--accbtn-fg:#F8F1EC;
 --st-green:#108474;--green:#0E8A76;--green-soft:rgba(16,132,116,.12);
 --st-orange:#B06E3B;--st-yellow:#A8894A;--red:#C05B4D;--red-soft:rgba(192,91,77,.12);
 --blue:#4A7A96;--purple:#7D6A9E;--yellow:#A8894A;
 --nav-material:rgba(248,241,236,.9);
 --sh-sm:0 1px 0 rgba(52,53,42,.04);--shadow:var(--sh-sm);--hero-sh:0 10px 24px -14px rgba(52,53,42,.35);
 --rangebg:rgba(248,241,236,.95);--logingrad:linear-gradient(135deg,#F8F1EC,#EBE3DE);
 --r-card:2px;--r-btn:2px;--r-icon:2px;--r-pill:3px;
}

/* ══ TEMA PASTEL (Derry 14 Sep 2026, permintaan tim) — tiga colorway terpilih dari lima usulan.
   Semuanya skin di atas tema TERANG (data-theme=light + data-skin), persis pola La Cabra —
   tema gelap bawaan tidak tersentuh.
   --gold SENGAJA ditimpa di tiap skin: emas bawaan tema terang (#8F6F38) hanya mencapai
   ~4,2-4,5:1 di latar pastel, sedangkan eyebrow halaman berukuran 10,5px = teks biasa
   (ambang 4,5:1). Nada di bawah ini terukur 5,1:1. JANGAN dicerahkan tanpa menghitung ulang.
   Warna status (red/green/blue) sengaja TIDAK ikut dipastelkan sampai pudar — peringatan
   yang semanis sekelilingnya berhenti berfungsi sebagai peringatan. ══════════════════ */
html[data-skin="stroberi"]{
 --bg:#FBF3F4;--surface:#FFFCFC;--surface-2:#F4E6E8;--surface-3:#EEDCDF;
 --label:#2D2126;--label-2:#6A5A60;--label-3:#9C8A90;
 --separator:#E7D6D9;--track:#F0E2E4;--line-2:#DCC8CC;
 --accent:#B04E64;--accent-2:#C86078;--accent-soft:rgba(176,78,100,.12);--on-soft:#8E3B4E;--on-accent:#FFFCFC;--accbtn-fg:#FFFCFC;
 --st-green:#3F7A5E;--green:#3F7A5E;--green-soft:rgba(63,122,94,.13);
 --st-orange:#B0653A;--st-yellow:#8A6A2E;--red:#B23B33;--red-soft:rgba(178,59,51,.12);
 --blue:#4A6E97;--purple:#7D6A9E;--yellow:#8A6A2E;
 --gold:#83622A;--gold-soft:rgba(131,98,42,.15);
 --nav-material:rgba(251,243,244,.9);
 --sh-sm:0 1px 2px rgba(45,33,38,.05);--shadow:var(--sh-sm);--hero-sh:0 10px 24px -14px rgba(45,33,38,.30);
 --rangebg:rgba(251,243,244,.95);--logingrad:linear-gradient(135deg,#FBF3F4,#F4E6E8);
 --r-card:16px;--r-btn:11px;--r-icon:10px;--r-pill:999px;
}
html[data-skin="taro"]{
 --bg:#F4F2F9;--surface:#FCFBFE;--surface-2:#E9E5F2;--surface-3:#E1DCEE;
 --label:#262233;--label-2:#5C566E;--label-3:#8E88A0;
 --separator:#DCD6EA;--track:#E6E1F0;--line-2:#CFC7E0;
 --accent:#66549B;--accent-2:#7B68B4;--accent-soft:rgba(102,84,155,.12);--on-soft:#53447F;--on-accent:#FCFBFE;--accbtn-fg:#FCFBFE;
 --st-green:#3D7458;--green:#3D7458;--green-soft:rgba(61,116,88,.13);
 --st-orange:#A9673A;--st-yellow:#8A6A2E;--red:#B23A3A;--red-soft:rgba(178,58,58,.12);
 --blue:#42679B;--purple:#66549B;--yellow:#8A6A2E;
 --gold:#7F622A;--gold-soft:rgba(127,98,42,.15);
 --nav-material:rgba(244,242,249,.9);
 --sh-sm:0 1px 2px rgba(38,34,51,.05);--shadow:var(--sh-sm);--hero-sh:0 10px 24px -14px rgba(38,34,51,.30);
 --rangebg:rgba(244,242,249,.95);--logingrad:linear-gradient(135deg,#F4F2F9,#E9E5F2);
 --r-card:16px;--r-btn:11px;--r-icon:10px;--r-pill:999px;
}
html[data-skin="telang"]{
 --bg:#EFF3F8;--surface:#FAFCFE;--surface-2:#E1E9F2;--surface-3:#D8E2EE;
 --label:#1E2833;--label-2:#54606D;--label-3:#84909D;
 --separator:#D2DDE9;--track:#DFE7F0;--line-2:#C3D0DE;
 --accent:#3A6B93;--accent-2:#4A80AD;--accent-soft:rgba(58,107,147,.12);--on-soft:#2F587A;--on-accent:#FAFCFE;--accbtn-fg:#FAFCFE;
 --st-green:#356F52;--green:#356F52;--green-soft:rgba(53,111,82,.13);
 --st-orange:#A4652F;--st-yellow:#85672A;--red:#AE3A31;--red-soft:rgba(174,58,49,.12);
 --blue:#2F6289;--purple:#6A5C96;--yellow:#85672A;
 --gold:#7E6226;--gold-soft:rgba(126,98,38,.15);
 --nav-material:rgba(239,243,248,.9);
 --sh-sm:0 1px 2px rgba(30,40,51,.05);--shadow:var(--sh-sm);--hero-sh:0 10px 24px -14px rgba(30,40,51,.30);
 --rangebg:rgba(239,243,248,.95);--logingrad:linear-gradient(135deg,#EFF3F8,#E1E9F2);
 --r-card:16px;--r-btn:11px;--r-icon:10px;--r-pill:999px;
}

/* ══ JAYA (Derry 14 Sep 2026) — colorway RX-78-2. Bukan pastel: ini keluarga sendiri.
   Putih baju zirah jadi latar, BIRU jadi aksen, merah dada & kuning V-fin jadi ISIAN.
   Kenapa merah & kuning tidak dipakai sebagai teks: diukur di latar ini, merah RX asli
   (#F92D37) cuma 3,85:1 dan kuning V-fin (#FCF272) 1,01:1 — jauh di bawah 4,5. Jadi
   keduanya hidup sebagai --*-soft (tint isian) sementara --red/--yellow/--gold memakai
   kembaran gelapnya (5,1-5,7:1). Birunya justru lolos apa adanya: 6,25:1, dan putih di
   atasnya 7,19:1 — jadi aksen RX dipakai TANPA diubah.
   Sudut sengaja TAJAM (4px), kebalikan dari keluarga pastel — ini mesin, bukan permen. */
html[data-skin="jaya"]{
 --bg:#EDEFF3;--surface:#FFFFFF;--surface-2:#E2E6EC;--surface-3:#D7DCE4;
 --label:#16192A;--label-2:#545A6B;--label-3:#7C8394;
 --separator:#D3D8E1;--track:#E4E8EE;--line-2:#C2C9D4;
 --accent:#2E51B0;--accent-2:#3E66CC;--accent-soft:rgba(46,81,176,.12);--on-soft:#24408C;--on-accent:#FFFFFF;--accbtn-fg:#FFFFFF;
 --st-green:#2F7A55;--green:#2F7A55;--green-soft:rgba(47,122,85,.13);
 --st-orange:#B0561C;--st-yellow:#7E6100;--red:#C81E28;--red-soft:rgba(249,45,55,.15);
 --blue:#2E51B0;--purple:#5B4FA8;--yellow:#7E6100;
 --gold:#7E6100;--gold-soft:rgba(252,242,114,.40);
 --nav-material:rgba(237,239,243,.92);
 --sh-sm:0 1px 0 rgba(22,25,42,.06);--shadow:var(--sh-sm);--hero-sh:0 10px 24px -14px rgba(22,25,42,.35);
 --rangebg:rgba(237,239,243,.95);--logingrad:linear-gradient(120deg,#FFFFFF 0%,#EDEFF3 42%,#2E51B0 100%);
 --r-card:4px;--r-btn:3px;--r-icon:3px;--r-pill:4px;
}
/* Tipografi v2 — metrik dari CSS asli lacabra.com:
   body Gotham 15px ls .06rem leading ~1.8 · h1-h3 SERIF "Anth" w400 sentence-case ls -.02em lh1.2-1.3 ·
   uppercase+tracking HANYA label kecil/nav/tombol · weight dominan 400/500 (nyaris tanpa bold). */
html[data-skin="lacabra"]{--lc-serif:Charter,"Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif}
html[data-skin="lacabra"] body{font-family:"Avenir Next",Futura,"Century Gothic","Plus Jakarta Sans",-apple-system,system-ui,"Segoe UI",Roboto,sans-serif;letter-spacing:.04em;line-height:1.5}
/* judul besar = serif tenang (persis h1-h3 mereka: serif 400, tracking negatif, TIDAK uppercase) */
html[data-skin="lacabra"] h2.title{font-family:var(--lc-serif);font-weight:400;letter-spacing:-.02em;text-transform:none;font-size:26px;line-height:1.2}
html[data-skin="lacabra"] .panel h3,html[data-skin="lacabra"] h3{font-family:var(--lc-serif);font-weight:500;letter-spacing:-.01em;font-size:16px;line-height:1.35}
html[data-skin="lacabra"] .modalbox h3,html[data-skin="lacabra"] #modalov h3{font-family:var(--lc-serif);font-weight:500}
/* label kecil & section head = uppercase Gotham ber-tracking (satu-satunya tempat uppercase) */
html[data-skin="lacabra"] .sub,html[data-skin="lacabra"] .sec-label{text-transform:uppercase;letter-spacing:.14em;font-weight:500}
html[data-skin="lacabra"] label,html[data-skin="lacabra"] .lbl{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:500}
html[data-skin="lacabra"] th{letter-spacing:.08em;font-weight:500}
/* bold diredam: mereka hampir tak pernah >500 */
html[data-skin="lacabra"] b,html[data-skin="lacabra"] strong{font-weight:600}
html[data-skin="lacabra"] .sub-t,html[data-skin="lacabra"] .note,html[data-skin="lacabra"] .muted{line-height:1.6}
/* input tenang: hairline, kotak, kertas */
html[data-skin="lacabra"] input.f,html[data-skin="lacabra"] select.f,html[data-skin="lacabra"] textarea{background:var(--surface);border:1px solid #CCC4BF;border-radius:2px}
html[data-skin="lacabra"] .pill{font-weight:600;letter-spacing:.05em}
/* panel & tabel: flat + hairline hangat, tanpa bayangan */
html[data-skin="lacabra"] .panel,html[data-skin="lacabra"] #login .box{box-shadow:none;border:1px solid #E3D9D0}
html[data-skin="lacabra"] #side{border-right-color:#E3D9D0}
html[data-skin="lacabra"] tbody tr.click:hover{background:#F3ECE5}
html[data-skin="lacabra"] tbody tr.sel{background:rgba(16,132,116,.10)}
html[data-skin="lacabra"] .bar-cell .b{background:rgba(16,132,116,.18)}
/* tombol ala La Cabra: primary = blok tinta olive (persis .button--primary--green mereka), sekunder = outline hairline;
   tipografi tombol mereka: uppercase, tracking, w500, tinggi lega */
html[data-skin="lacabra"] .preset{text-transform:uppercase;letter-spacing:.08em;font-weight:500;font-size:12px;padding:8px 16px}
html[data-skin="lacabra"] .preset:not(.inkbg):not([style*="background"]){background:transparent;border:1px solid #CCC4BF;box-shadow:none}
html[data-skin="lacabra"] .preset:not(.inkbg):not([style*="background"]):hover{background:#F3ECE5}
html[data-skin="lacabra"] .preset.pri,html[data-skin="lacabra"] .preset.active{background:#34352A!important;color:#F8F1EC!important;border:1px solid #34352A!important}
html[data-skin="lacabra"] .preset.pri:hover,html[data-skin="lacabra"] .preset.active:hover{background:#414234!important}
html[data-skin="lacabra"] .navitem.active{background:rgba(16,132,116,.10);color:#0C6B5E}
html[data-skin="lacabra"] .navitem:hover{background:#F3ECE5}
html[data-skin="lacabra"] .pill{border-radius:3px}
html[data-skin="lacabra"] .tag{border-radius:3px}
html[data-skin="lacabra"] #gsres{box-shadow:0 10px 30px rgba(52,53,42,.14)}
/* =================== TEMA GLASS (Liquid Glass ala iOS/Apple) — switch ortogonal data-glass=on, jalan di atas dark & light =================== */
html[data-glass="on"]{--r-card:22px;--r-btn:15px;--separator:rgba(255,255,255,.20);--line:rgba(255,255,255,.20);--glass-edge:inset 0 1px 0 rgba(255,255,255,.28),inset 0 -1px 0 rgba(255,255,255,.05);}
/* latar dekoratif (smoked / dark) — supaya blur ada yang dibiaskan */
html[data-glass="on"] body{background:
  radial-gradient(1200px 760px at 8% -10%, rgba(217,124,96,.30), transparent 58%),
  radial-gradient(1000px 680px at 112% 8%, rgba(95,163,223,.26), transparent 55%),
  radial-gradient(900px 900px at 50% 122%, rgba(169,138,224,.24), transparent 60%),
  linear-gradient(160deg,#0a0c10,#10131a 60%,#0a0c10);
  background-attachment:fixed;}
/* latar terang (frosted) */
html[data-glass="on"][data-theme="light"] body{background:
  radial-gradient(1200px 760px at 8% -10%, rgba(255,176,112,.55), transparent 58%),
  radial-gradient(1000px 680px at 112% 8%, rgba(150,196,240,.55), transparent 55%),
  radial-gradient(900px 900px at 50% 122%, rgba(196,176,240,.5), transparent 60%),
  linear-gradient(160deg,#eef1f6,#f7f9fc 55%,#eaeef5);
  background-attachment:fixed;}
/* permukaan kaca (dark/smoked default) */
html[data-glass="on"] #side,
html[data-glass="on"] .panel,
html[data-glass="on"] #modalov .modalbox,
html[data-glass="on"] #gsres{
  background:rgba(22,25,32,.97)!important;
  -webkit-backdrop-filter:blur(26px) saturate(185%);backdrop-filter:blur(26px) saturate(185%);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 12px 38px rgba(0,0,0,.46),var(--glass-edge)!important;}
html[data-glass="on"] #rangebar{background:rgba(20,23,30,.5)!important;-webkit-backdrop-filter:blur(26px) saturate(185%);backdrop-filter:blur(26px) saturate(185%);border-bottom:1px solid rgba(255,255,255,.14);}
html[data-glass="on"] .preset:not(.inkbg):not([style*="background"]){background:rgba(255,255,255,.08)!important;-webkit-backdrop-filter:blur(14px) saturate(160%);backdrop-filter:blur(14px) saturate(160%);border:1px solid rgba(255,255,255,.18);box-shadow:var(--glass-edge);}
html[data-glass="on"] .preset:not(.inkbg):not([style*="background"]):hover{background:rgba(255,255,255,.14)!important;}
html[data-glass="on"] .preset.pri,html[data-glass="on"] .preset.active,html[data-glass="on"] .preset.accbtn,html[data-glass="on"] .accbtn{background:linear-gradient(180deg,rgba(217,124,96,.92),rgba(217,124,96,.7))!important;color:#1C0B07!important;border-color:rgba(255,255,255,.35)!important;}
html[data-glass="on"] .pill{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.18);}
html[data-glass="on"] .navitem.active{background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.06))!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:0 12px 12px 0;box-shadow:var(--glass-edge);}
html[data-glass="on"] .navitem:hover{background:rgba(255,255,255,.07)!important;}
html[data-glass="on"] #login .box{background:rgba(28,32,40,.55)!important;-webkit-backdrop-filter:blur(28px) saturate(185%);backdrop-filter:blur(28px) saturate(185%);border:1px solid rgba(255,255,255,.18);box-shadow:0 20px 60px rgba(0,0,0,.5),var(--glass-edge);}
html[data-glass="on"] #mtog{background:rgba(28,32,40,.6)!important;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.18);}
/* tabel/baris transparan supaya kaca tembus */
html[data-glass="on"] .litem{border-bottom-color:rgba(255,255,255,.10);}
/* ===== varian TERANG (frosted putih ala Control Center) ===== */
html[data-glass="on"][data-theme="light"]{--separator:rgba(20,24,30,.14);--line:rgba(20,24,30,.14);--glass-edge:inset 0 1px 0 rgba(255,255,255,.85),inset 0 -1px 0 rgba(20,24,30,.04);}
html[data-glass="on"][data-theme="light"] #side,
html[data-glass="on"][data-theme="light"] .panel,
html[data-glass="on"][data-theme="light"] #modalov .modalbox,
html[data-glass="on"][data-theme="light"] #gsres{background:rgba(255,255,255,.55)!important;border:1px solid rgba(255,255,255,.7);box-shadow:0 12px 38px rgba(60,80,120,.18),var(--glass-edge)!important;}
html[data-glass="on"][data-theme="light"] #gsres{background:rgba(252,253,255,.98)!important;} /* dropdown cari: opaque biar tak tembus teks halaman (overlap) */
html[data-glass="on"][data-theme="light"] #rangebar{background:rgba(255,255,255,.55)!important;border-bottom:1px solid rgba(255,255,255,.7);}
html[data-glass="on"][data-theme="light"] .preset:not(.inkbg):not([style*="background"]){background:rgba(255,255,255,.5)!important;border:1px solid rgba(255,255,255,.7);}
html[data-glass="on"][data-theme="light"] .preset:not(.inkbg):not([style*="background"]):hover{background:rgba(255,255,255,.72)!important;}
/* FIX kontras (Theola): tombol pri/active di TERANG+GLASS tadinya teks putih di atas latar putih transparan (rgba(255,255,255,.5) dari .preset) → tak terbaca. Kembalikan gradien aksen + teks gelap (konvensi tema terang: gelap-di-atas-aksen). Spesifisitas lebih tinggi + urutan setelah .preset → menang. */
html[data-glass="on"][data-theme="light"] .preset.pri,html[data-glass="on"][data-theme="light"] .preset.active,html[data-glass="on"][data-theme="light"] .preset.accbtn,html[data-glass="on"][data-theme="light"] .accbtn{background:linear-gradient(180deg,rgba(100,15,7,.95),rgba(100,15,7,.78))!important;color:#F2EFE4!important;border:1px solid rgba(100,15,7,.55)!important;}
html[data-glass="on"][data-theme="light"] .preset.pri:hover,html[data-glass="on"][data-theme="light"] .preset.active:hover{background:linear-gradient(180deg,rgba(100,15,7,1),rgba(100,15,7,.86))!important;}
html[data-glass="on"][data-theme="light"] .navitem.active{background:linear-gradient(180deg,rgba(255,255,255,.8),rgba(255,255,255,.45))!important;}
html[data-glass="on"][data-theme="light"] .navitem:hover{background:rgba(255,255,255,.5)!important;}
html[data-glass="on"][data-theme="light"] #login .box{background:rgba(255,255,255,.6)!important;border:1px solid rgba(255,255,255,.75);}
html[data-glass="on"][data-theme="light"] #mtog{background:rgba(255,255,255,.65)!important;border:1px solid rgba(255,255,255,.7);}
/* tombol Glass di sidebar */
#glassBtn{cursor:pointer;margin-left:10px}
@media (prefers-reduced-motion:no-preference){html[data-glass="on"] .panel{transition:background-color .3s var(--ease-std),box-shadow .3s var(--ease-std)}}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--txt);font-family:var(--font-sans);font-size:14px;line-height:var(--lh-body,1.45);letter-spacing:.1px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--dur-enter) var(--ease-std),color var(--dur-enter) var(--ease-std)}
:root{--font-sans:'Hanken Grotesk','Plus Jakarta Sans',-apple-system,"SF Pro Text",system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--font-display:'Fraunces',Georgia,"Times New Roman",serif;--fw-display:600;--fw-display:800;--ls-display-tight:-.02em;--ls-caps:.14em;--font-num:var(--font-sans)}
.tabular,.kpi .val,.stat-num{font-variant-numeric:tabular-nums;letter-spacing:-.02em}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.08s!important;scroll-behavior:auto!important}}
/* === PRIMITIVES (Fase 2 — Apple-grade) === */
svg.luc{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
    /* Logo merek = siluet penuh (Derry 9 Sep 2026: "pake logo shiluet tiktok"). Ikon lain tetap garis. */
    .luc.sol{fill:currentColor;stroke:none}
.emoluc-w{display:inline-flex;align-items:center;gap:6px;min-width:0;margin-right:6px}
.pill .emoluc-w,.tag .emoluc-w{gap:4px;margin-right:3px;vertical-align:-2px}
.emoluc-w svg{flex:0 0 auto}
#side .navitem .ic{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;color:var(--label);flex:0 0 auto}
#side .navitem .ic svg{width:15px;height:15px;stroke-width:2.2}
#side .navitem.active .ic{box-shadow:0 0 0 1.5px rgba(255,255,255,.18) inset}
#side .sub{display:flex;align-items:center;gap:7px}
#themeBtn svg,#hdrActions .hdrbtn svg{vertical-align:-3px}
.btn2{display:inline-flex;align-items:center;gap:8px;font:inherit;font-weight:600;font-size:14px;border-radius:var(--r-btn);padding:10px 16px;border:1px solid transparent;cursor:pointer;transition:transform var(--dur-press) var(--ease-out),background-color var(--dur-state) var(--ease-std),border-color var(--dur-state)}
.btn2:active{transform:scale(.96)}
.btn2-primary{background:var(--accent);color:var(--on-accent)}
.btn2-ghost{background:var(--surface);color:var(--label);border-color:var(--separator)}
.btn2-plain{background:transparent;color:var(--accent)}
.btn2-danger{background:var(--danger);color:#fff}
.btn2{line-height:1}.btn2 svg{width:15px;height:15px;flex:0 0 auto}
.pill2{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:var(--r-pill);font-size:13px;font-weight:600;background:var(--surface);border:1px solid var(--separator);color:var(--label-2);transition:transform .15s,background-color var(--dur-state),color var(--dur-state)}
.pill2:active{transform:scale(.94)}
.pill2.on{background:var(--label);color:var(--bg);border-color:var(--label)}
.badge2{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:var(--r-pill);font-size:12px;font-weight:700}
.badge2.green{background:var(--green-soft);color:var(--green)}.badge2.red{background:var(--red-soft);color:var(--red)}.badge2.amber{background:var(--accent-soft);color:var(--accent)}
.card2{background:var(--surface);border:1px solid var(--separator);border-radius:var(--r-card);box-shadow:var(--sh-sm);transition:background-color var(--dur-state) var(--ease-std),border-color var(--dur-state)}
.icon-box{width:32px;height:32px;border-radius:var(--r-icon);display:inline-flex;align-items:center;justify-content:center}
.icon-box.amber{background:var(--accent-soft);color:var(--accent)}.icon-box.green{background:var(--green-soft);color:var(--green)}.icon-box.red{background:var(--red-soft);color:var(--red)}
.icon-box svg{width:18px;height:18px}
.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--separator);border-radius:12px;padding:3px;gap:2px}
.seg button{font:inherit;font-weight:600;font-size:13px;border:0;background:transparent;color:var(--label-2);padding:7px 14px;border-radius:9px;cursor:pointer;transition:.2s var(--ease-std)}
.seg button.on,.seg button.active{background:var(--surface);color:var(--label);box-shadow:var(--sh-sm)}
.seg button.active{color:var(--label);font-weight:700}
/* micro-interaction tekan utk tombol/aksi lama */
.preset:active,.hdrbtn:active,.tab:active{transform:scale(.96)}
/* === MOTION: scroll-reveal (Fase 5) === */
.reveal{opacity:0;transform:translateY(9px);transition:opacity .3s var(--ease-out),transform .3s var(--ease-out)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1!important;transform:none!important;transition:none!important}}
/* === skeleton loader & empty-state (Fase 6) === */
.skel{background:linear-gradient(90deg,var(--surface-2) 25%,var(--separator) 37%,var(--surface-2) 63%);background-size:400% 100%;animation:skelsh 1.3s ease infinite;border-radius:8px}
@keyframes skelsh{0%{background-position:100% 0}100%{background-position:0 0}}
@media(prefers-reduced-motion:reduce){.skel{animation:none}}
.skel-row{height:14px;margin:10px 0;border-radius:7px}
.empty{text-align:center;padding:30px 18px;color:var(--label-2)}
.empty-soft{text-align:center;padding:16px 14px;border:1.5px dashed var(--separator);border-radius:12px;color:var(--label-2);font-size:13px}
.ovgreet{}
.ovgreet-hero{margin:2px 0 14px;background:linear-gradient(135deg,var(--accent-soft),transparent 70%);}
.ovbrand{letter-spacing:var(--ls-caps,.14em);text-transform:uppercase;font-weight:700;color:var(--accent);font-size:12px;display:flex;align-items:center;gap:6px}
.ovhi{margin:4px 0 0;font-size:26px;font-weight:800;letter-spacing:-.02em}
.menucard{cursor:pointer;display:flex;gap:12px;align-items:center;min-height:54px}
.menucard .mi{display:inline-flex;color:var(--accent);flex:0 0 auto}
/* Tombol aksi utama (Absen Masuk/Pulang). DITULIS `.preset.bigact` (0,2,0) dengan sengaja:
   `button.preset{min-height:34px}` di :878 lebih spesifik (0,1,1) DAN lebih bawah, jadi `.bigact` polos
   selalu kalah — kelas ini tak pernah benar-benar membesarkan tombol, di desktop maupun HP (temuan 7 Agu).
   Semua pemakaiannya memang `class="preset … bigact"`, jadi penajaman ini aman. */
.preset.bigact{font-size:16px;padding:13px 26px;min-height:52px;border-radius:14px;font-weight:800}
/* komposit standar (Fase 4 wajib pakai ini, bukan inline style) */
.stat-tile{background:var(--surface-2);border:1px solid var(--separator);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}
.stat-tile .v{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.stat-tile .l{font-size:12px;color:var(--label-2)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:5px 14px;font-size:13px}.kv>b{color:var(--label-2);font-weight:600}
.chip-f{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:999px;border:1px solid var(--separator);background:var(--surface-2);font-size:12px;cursor:pointer;min-height:30px}
.chip-f.on{background:var(--accent-soft);border-color:var(--accent);color:var(--on-soft)}
.rowact{display:flex;gap:6px;justify-content:flex-end;align-items:center}
.tkcard{border:1px solid var(--line);border-left:3px solid var(--line);border-radius:10px;padding:9px 11px;margin-bottom:8px;background:var(--panel)}
.tkcard .tkt{font-weight:600;font-size:13px}
.tkcol{min-width:215px;width:215px}
.tkcol-h{font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:var(--ls-caps,.14em);padding:4px 2px;border-bottom:2px solid currentColor;margin-bottom:8px}
.micard{border-left:3px solid var(--line);padding:14px 16px}
.micard .mt{flex:1;min-width:240px;font-size:14px;font-weight:700;line-height:1.35}
.miev{margin-top:7px;padding:6px 9px;background:var(--panel2);border-radius:7px}
.mifoot{margin-top:7px;border-top:1px solid var(--line);padding-top:6px}
.mibtns{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.kvc{padding:6px 0;border-bottom:1px solid var(--separator)}
.kvr{padding:3px 0;border-bottom:1px solid var(--separator)}
.statbig{font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
/* segmented control ala iOS utk sub-menu halaman */
#pgTabs{display:flex;gap:4px;margin:8px 0 14px;background:var(--surface-2);border:1px solid var(--separator);border-radius:13px;padding:4px;overflow-x:auto;-webkit-overflow-scrolling:touch}
#pgTabs/* #90: scrollbar kini ditampilkan */
#pgTabs button{flex:0 0 auto;border:none;background:none;color:var(--label-2);font-size:13px;font-weight:600;padding:8px 14px;border-radius:10px;cursor:pointer;min-height:38px;white-space:nowrap;transition:background .18s,color .18s;display:inline-flex;align-items:center;gap:6px}
#pgTabs button.active{background:var(--surface);color:var(--label);box-shadow:0 1px 6px rgba(0,0,0,.25)}
#pgTabs button .cnt2{font-size:12px;background:var(--separator);border-radius:999px;min-width:17px;height:17px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;color:var(--label-2)}
#pgTabs button.active .cnt2{background:var(--accent-soft);color:var(--accent)}
/* rasa iOS (7 Jun): large-title collapse · sheet · transisi · switch */
@media(max-width:1024px){
 #pagewrap .page>h2.title{position:sticky;top:var(--rbh,0px);z-index:45;margin:0 calc(-1 * var(--gutter,14px)) 12px;padding:10px 14px 9px;font-size:var(--ttfs,27px);letter-spacing:-.02em;background:var(--nav-material,rgba(23,26,32,.82));backdrop-filter:blur(14px) saturate(170%);-webkit-backdrop-filter:blur(14px) saturate(170%);transform:translateZ(0)}
 #pagewrap .page>h2.title .ttl-ic{width:1.18em;height:1.18em;border-radius:.32em;vertical-align:-.24em;margin-right:.36em}
 #pagewrap .page>h2.title .ttl-ic svg{width:.6em;height:.6em}
}
/* ═══ Beranda HP "Papan Angka" (pilihan Derry 20 Sep 2026: "kamu atur aja" -> alternatif B) ═══
   Diukur 30 hari: 14 pemakai dominan HP hampir semuanya tim GRO; halaman mereka = antrian 297x,
   tamu 162x, Beranda 82x (semua 14 orang). Petak ini hanya dirender di HP dan hanya untuk peran
   lapangan - di desktop & peran lain tak ada satu pun permintaan jaringan tambahan. */
.ovtiles{display:none}
@media(max-width:640px){
 .ovtiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 12px}
 .ovtile{border-radius:16px;padding:13px 14px 11px;border:1px solid var(--separator);background:var(--surface);min-height:96px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;color:var(--txt)}
 .ovtile .oti{color:var(--label-3)}
 .ovtile .otv{font-size:30px;font-weight:800;letter-spacing:-1.1px;line-height:1;font-variant-numeric:tabular-nums}
 .ovtile .otk{font-size:12.5px;color:var(--label-2);margin-top:5px;line-height:1.3}
 .ovtile.warn{background:color-mix(in srgb,var(--yellow) 12%,var(--surface))}
 .ovtile.crit{background:color-mix(in srgb,var(--red) 10%,var(--surface))}
 .ovtile.ok{background:color-mix(in srgb,var(--ok) 10%,var(--surface))}
 #modalov{align-items:flex-end;padding:0}
 #modalov .modalbox{width:100%;max-width:none;border-radius:22px 22px 0 0;max-height:90vh;overflow:auto;animation:sheetup .3s var(--ease-out);padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}
 #modalov .modalbox::before{content:'';display:block;width:38px;height:5px;border-radius:3px;background:var(--separator);margin:-6px auto 12px}
}
@keyframes sheetup{from{transform:translateY(48px);opacity:.55}to{transform:none;opacity:1}}
/* #main adalah flex item (flex:1 1 0%) dengan min-width:auto bawaan -> tabel lebar di dalam .scrollx mendorong min-content-nya sampai MENEROBOS rail Hari Ini (terukur 8 Sep 2026: Laporan Social Media 1069px vs Overview 687px, teks terpotong di layar Derry). min-width:0 = perbaikan flexbox baku; .scrollx tetap yang menggulir tabelnya. */
#main{min-width:0}
.pgin{animation:pgin .22s var(--ease-out)}
@keyframes pgin{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){#modalov .modalbox{animation:none}.pgin{animation:none}}
/* PERF HP (≤820px): matikan blur/glass yg dihitung-ulang saat scroll + animasi pindah halaman → scroll mulus, hemat GPU/baterai. Desktop tetap glass. (Derry 25 Jun 2026) */
@media(max-width:820px){
  .pgin{animation:none!important}.page{animation:none!important}
  .page>h2.title{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:var(--panel,#171a20)!important}
  #rangebar{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:var(--panel,#171a20)!important}
  html[data-glass="on"] #side,html[data-glass="on"] .panel,html[data-glass="on"] #modalov .modalbox,html[data-glass="on"] #gsres,html[data-glass="on"] #rangebar{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:var(--panel,#171a20)!important}
  /* #139 A1: #botnav satu-satunya bar position:fixed selebar layar yg ADA DI TIAP HALAMAN HP →
     backdrop-nya di-sample ulang tiap frame scroll. Ia terlewat waktu daftar ini dibuat. */
  #botnav{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:var(--panel,#171a20)!important;will-change:auto!important}
}
/* ===== PUTUSAN AUDITOR atas kasus Outage (req Derry 22 Agu 2026) =====
   Sistem tombol: popover pakai DUA LANGKAH (kategori -> sebab) karena ruangnya sempit;
   kartu antrean pakai GRID SERAGAM karena ruangnya lega & kecepatan yang penting.
   (pilihan Derry: "1 utk kartu antrean, 3 utk popover"). Semua tombol tinggi 40px, lebar
   dibuat identik lewat grid — penyebab "tidak rapih" sebelumnya adalah chip berbeda lebar
   yang membungkus acak 3/3/2/1. */
.ohvchip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:var(--r-pill,999px);font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer;border:1px solid transparent}
.ohvchip.belum{background:var(--surface-3);color:var(--label-3);border:1px dashed var(--separator-strong)}
.ohvchip.outage{background:var(--red-soft);color:var(--red)}
.ohvchip.bukan{background:var(--ok-soft);color:var(--ok)}
.ohvchip.pensiun{background:var(--gold-soft);color:var(--gold)}
.ohvchip.tunda{background:var(--info-soft);color:var(--info)}
.ohvchip:hover{filter:brightness(1.14)}
#ohvPop{position:fixed;z-index:100050;width:394px;max-width:calc(100vw - 24px);background:var(--surface-2);border:1px solid var(--separator-strong);
 border-radius:var(--r-card,16px);padding:15px;box-shadow:0 24px 64px rgba(0,0,0,.6);max-height:88vh;overflow:auto}
#ohvPop h5{margin:0 0 3px;font-size:14.5px;font-weight:700;letter-spacing:-.25px}
#ohvPop .ohvev{font-size:12.5px;color:var(--label-3);line-height:1.5;margin-bottom:11px}
.ohvlb{font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--label-3);margin:13px 0 7px}
.ohvlb:first-child{margin-top:0}
.ohvg2{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}
.ohvg3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.ohvb{display:flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 10px;border-radius:var(--r-btn,12px);
 border:1px solid var(--separator);background:var(--surface);color:var(--label-2);font-size:12.5px;font-weight:600;line-height:1.25;text-align:center;cursor:pointer}
.ohvb:hover{border-color:var(--separator-strong)}
.ohvb.on{background:var(--acc);border-color:transparent;color:var(--on-accent,#1C0B07);font-weight:700}
.ohvb.on.vr{background:var(--red);color:var(--bg)}
.ohvb.on.vk{background:var(--gold);color:var(--bg)}
.ohvb.on.vo{background:var(--ok);color:var(--bg)}
.ohvb.on.vi{background:var(--info);color:var(--bg)}
.ohvkat{border:1px solid var(--separator);border-radius:var(--r-input,10px);background:var(--surface);padding:10px 11px;cursor:pointer;text-align:left}
.ohvkat.on{border-color:var(--acc);background:var(--accent-soft)}
.ohvkat b{display:block;font-size:13px;font-weight:700;letter-spacing:-.15px}
.ohvkat span{display:block;font-size:12px;color:var(--label-3);margin-top:2px}
.ohvstep{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--label-3)}
.ohvstep i{width:19px;height:19px;border-radius:50%;background:var(--surface-3);color:var(--label-2);font-size:12px;font-style:normal;display:flex;align-items:center;justify-content:center;font-weight:800}
.ohvstep.on i{background:var(--acc);color:var(--on-accent,#1C0B07)}
#ohvPop textarea{width:100%;background:var(--surface);border:1px solid var(--separator);border-radius:var(--r-input,10px);color:var(--label-2);
 font:400 12.5px/1.5 inherit;padding:9px 10px;height:52px;resize:vertical}
.ohvft{display:flex;gap:8px;margin-top:13px;align-items:center;flex-wrap:wrap}
.ohvq{background:var(--surface);border:1px solid var(--separator);border-left:3px solid var(--red);border-radius:var(--r-input,10px);padding:13px 15px;margin-bottom:9px}
.ohvq.kr{border-left-color:var(--gold)}
.ohvq.ok{border-left-color:var(--ok)}
.ohvqt{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.ohvqn{font-size:15px;font-weight:700;letter-spacing:-.25px}
.ohvev2{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:12px}
.ohvev2>div{background:var(--surface-2);border-radius:var(--r-icon,9px);padding:8px 10px}
.ohvev2 .k{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--label-3)}
.ohvev2 .v{font-size:13.5px;font-weight:700;margin-top:2px}
.ohvgrp{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--label-3);margin:11px 0 6px;display:flex;align-items:center;gap:8px}
.ohvgrp:after{content:'';flex:1;height:1px;background:var(--separator)}
@media(max-width:640px){.ohvev2{grid-template-columns:repeat(2,1fr)}.ohvg3{grid-template-columns:repeat(2,1fr)}}
/* ===== LAPIS RINGKASAN Outage (alternatif A, pilihan Derry 21 Agu 2026) =====
   "Halaman ini harus menjawab APA YANG SAYA BERESKAN HARI INI dalam 5 detik." Matriks 118x21
   (~2.478 sel) itu bahan mentah, bukan jawaban. Jadi di ATAS matriks: tiga kartu jawaban +
   peringkat berdasar KERUGIAN. Permintaan Derry: "fitur2 yang sudah ada jangan hilang" -> tak
   ada yang dicabut; matriks tetap terbuka apa adanya, cuma sekarang bisa dilipat kalau mau. */
#outSumPanel .oscards{display:grid;grid-template-columns:1.05fr 1.5fr 1.25fr;gap:11px;margin-bottom:12px}
#outSumPanel .osc{background:var(--surface);border:1px solid var(--separator);border-radius:var(--r-card,16px);padding:14px 15px}
#outSumPanel .osc.bad{border-color:color-mix(in srgb,var(--red) 45%,transparent)}
#outSumPanel .osc.warn{border-color:color-mix(in srgb,var(--gold) 42%,transparent)}
#outSumPanel .osk{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--label-3,var(--mut));margin-bottom:7px;display:flex;align-items:center;gap:6px}
#outSumPanel .osv{font-size:29px;font-weight:800;letter-spacing:-1px;line-height:1;font-variant-numeric:tabular-nums}
#outSumPanel .osv small{font-size:14px;font-weight:600;letter-spacing:-.2px;color:var(--label-3,var(--mut));margin-left:5px}
#outSumPanel .osv.nm{font-size:20px;letter-spacing:-.5px}
#outSumPanel .oss{font-size:12.5px;color:var(--label-3,var(--mut));margin-top:7px;line-height:1.5}
#outSumPanel .oss b{color:var(--label-2,var(--txt))}
#outSumPanel table.osr{border-collapse:separate;border-spacing:0 5px;width:100%}
#outSumPanel table.osr th{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--label-3,var(--mut));text-align:left;padding:0 11px 3px}
#outSumPanel table.osr td{background:var(--surface-2);padding:9px 11px;font-size:13px;vertical-align:middle}
#outSumPanel table.osr tr.rw{cursor:pointer}
#outSumPanel table.osr tr.rw:hover td{background:var(--surface-3)}
#outSumPanel table.osr tr td:first-child{border-radius:var(--r-input,10px) 0 0 var(--r-input,10px)}
#outSumPanel table.osr tr td:last-child{border-radius:0 var(--r-input,10px) var(--r-input,10px) 0}
#outSumPanel .osnm{font-weight:700;letter-spacing:-.2px}
#outSumPanel .osmeta{font-size:12px;color:var(--label-3,var(--mut));margin-top:2px}
#outSumPanel .osnum{font-variant-numeric:tabular-nums;text-align:right;font-weight:700}
#outSumPanel .osstrip{display:flex;gap:2px}
#outSumPanel .osstrip i{width:10px;height:17px;border-radius:3px;background:color-mix(in srgb,var(--ok) 38%,transparent);display:inline-block}
#outSumPanel .osstrip i.r{background:var(--red)}
#outSumPanel .osbar{position:relative;height:20px;border-radius:6px;background:var(--surface-3);overflow:hidden;margin-top:8px}
#outSumPanel .osbar i{position:absolute;top:0;bottom:0;background:var(--red);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--bg);font-style:normal}
@media(max-width:900px){#outSumPanel .oscards{grid-template-columns:1fr}}
/* ===== Tabel JAM Outage — warna dari TOKEN, sel jadi chip terpisah (Derry 21 Agu 2026) =====
   Keluhan: "warnanya masih gini ga match". Dua sebabnya, dua-duanya nyata:
   (1) mockup digambar di palet biru-gelap, sedangkan app ini berpalet ESPRESSO (--bg #151009) —
       merah/hijau yang dipaku sebagai rgba() tak akan pernah senada dengan tema, dan makin jauh
       lagi di tema Terang/La Cabra/HUD/Sakura/Riso. Sekarang semua sel memakai var(--red)/var(--ok)
       lewat color-mix, jadi ia ikut tema apa pun.
   (2) tabelnya border-collapse dengan garis 1px nyaris tak terlihat -> sel merah yang berdampingan
       MENYATU jadi lempengan besar. Padahal di mockup selnya chip terpisah. Sekarang
       border-spacing 2px + sudut membulat: jendela panjang tetap terbaca sebagai deretan jam,
       bukan satu blok merah.
   Latar baris yang mengembang juga dilepas dari --accent-soft (terracotta) ke --surface, karena
   wash terracotta membuat hijau tampak keruh. */
#outHeatPanel table.ohjam{border-collapse:separate;border-spacing:2px}
#outHeatPanel table.ohjam th{border:0;padding:2px 3px;font-size:12px;font-weight:750;color:var(--label-3,var(--mut))}
#outHeatPanel table.ohjam td{border:0;border-radius:5px;padding:4px 3px;font-size:12px}
#outHeatPanel table.ohjam td.jc{min-width:27px;text-align:center;font-variant-numeric:tabular-nums;background:var(--surface-2,rgba(255,255,255,.04));color:var(--label-3,var(--mut))}
#outHeatPanel table.ohjam td.jc.bd{background:color-mix(in srgb,var(--red) 58%,transparent);color:#fff;font-weight:750}
#outHeatPanel table.ohjam td.jc.iso{background:color-mix(in srgb,var(--red) 14%,transparent)}
#outHeatPanel table.ohjam td.jc.off{background:transparent;opacity:.4}
#outHeatPanel table.ohjam td.nmc{text-align:left;white-space:nowrap;padding:4px 9px;color:var(--label-2,var(--txt))}
#outHeatPanel table.ohjam td.sig{text-align:right;padding:4px 7px;color:var(--label-2,var(--txt))}
#outHeatPanel table.ohjam tr.tot td{font-weight:750;color:var(--txt)}
/* ===== Outage Produk — HP: kartu per produk (Arah C, Derry 5 Jul 2026) + filter ramping + aman FAB ===== */
#outHeatPanel .oh-adv{display:flex}
#ohAdvToggle{display:none}
#outHeatPanel .oh-cards{display:none}
.ohcards-note{font-size:12.5px;color:var(--mut);margin:0 0 11px;line-height:1.45}
.ohpc{background:var(--panel2,#1c2029);border:1px solid var(--line);border-radius:12px;padding:11px 12px;margin:0 0 10px}
.ohpc .h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px}
.ohpc .h b{font-size:14px;text-transform:capitalize;line-height:1.25}
.ohpc .h .tot{font-size:12px;color:var(--mut);white-space:nowrap;font-variant-numeric:tabular-nums}
.ohstrip{display:flex;gap:3px;flex-wrap:wrap}
.ohd{width:15px;height:15px;border-radius:4px}
@media (hover:none){.ohd{width:22px;height:22px;border-radius:5px}.ohstrip{gap:4px}}
.ohd[data-iso]{cursor:pointer}
.ohd.off{background:var(--surface3,#2a3140);opacity:.4}
.ohd.z{background:#e0524d}
.ohpc .ft{margin-top:8px;font-size:12.5px;color:var(--mut);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.ohpc .ft .r{color:#e0524d;font-weight:600}
.ohpc .ft .ok{color:#3da56a;font-weight:600}
@media(max-width:1024px){#outHeatPanel{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}}
@media(max-width:640px){
 #ohAdvToggle{display:inline-flex}
 #outHeatPanel .oh-adv{display:none}
 #outHeatPanel .oh-adv.on{display:flex}
 #outHeatPanel .oh-wide{display:none}
 #outHeatPanel .oh-cards{display:block}
}
/* ================= TEMA "KOMIK RISO" (pilihan Derry 21 Agu 2026) =========================
   Cetak risograph: kertas krem, garis tebal hitam, bayangan keras, dan TIGA tinta —
   pink #FF48B0, biru #0078BF, kuning #FFC800. Tema ke-7, duduk di ATAS tema terang
   (data-theme="light" + data-skin="riso"), pola yang sama dengan La Cabra & Sakura.

   PELAJARAN YANG SUDAH MEMAKAN WAKTU: banyak komponen menulis warnanya lewat aturan
   ber-ID (mis. `#outStorePanel .osbar i{background:var(--red)}`). Aturan ber-ID
   MENGALAHKAN `html[data-skin="riso"] .osbar i`. Jadi setiap komponen ber-id yang mau
   diwarnai ulang WAJIB ditulis `html[data-skin="riso"] #idnya …`. Kalau ada warna yang
   "tidak mau berubah" di skin ini, itu sebabnya — bukan tokennya salah.

   Kontras terukur: teks di kertas 16,7:1 (AAA) · teks redup 8,0:1 (AAA) ·
   teks di tombol pink 6,0:1 (AA) · biru riso di kertas 6,0:1 (AA). */
html[data-skin="riso"][data-theme]{
  --bg:#FAF3E7;--surface:#FFFDF7;--surface-2:#FFFFFF;--surface-3:#F3EADA;
  --panel:#FFFDF7;--panel2:#FFFFFF;
  --label:#141414;--label-2:#4A4A4A;--label-3:#6E6E6E;--txt:#141414;--mut:#4A4A4A;
  --separator:#141414;--separator-strong:#141414;--line:#141414;--track:#F0E6D4;
  --accent:#FF48B0;--acc:#FF48B0;--accent-2:#0078BF;--acc2:#0078BF;
  --accent-soft:rgba(255,72,176,.14);
  --gold:#B98600;--yellow:#FFC800;--gold-soft:rgba(255,200,0,.22);
  --ok:#0E8A55;--green:#0E8A55;--ok-soft:rgba(14,138,85,.14);
  --red:#E23B2E;--info:#0060A0;--info-soft:rgba(0,96,160,.13);
  --on-accent:#141414;--accbtn-fg:#141414;
  --shadow:4px 4px 0 #141414;
  --r-card:14px;--r-btn:10px;
}
/* --- bentuk: garis tebal + bayangan keras, bukan bayangan lembut --- */
html[data-skin="riso"] .panel,html[data-skin="riso"] .statcard,html[data-skin="riso"] .card{
  border:2.5px solid #141414;box-shadow:5px 5px 0 #141414}
html[data-skin="riso"] .preset,html[data-skin="riso"] .btn2,html[data-skin="riso"] button.f,
html[data-skin="riso"] select.f,html[data-skin="riso"] input.f,html[data-skin="riso"] textarea.f{
  border:2px solid #141414;box-shadow:2px 2px 0 #141414;font-weight:700}
html[data-skin="riso"] .preset.pri,html[data-skin="riso"] .btn2-primary{background:#FF48B0;background-image:none;color:#141414}
/* background-image:none WAJIB — tombol primer memakai linear-gradient di aturan lain, dan
   shorthand `background` saja ternyata tidak selalu menumpasnya (terlihat sebagai tombol
   ungu-biru saat diuji 21 Agu). */
html[data-skin="riso"] .preset:active,html[data-skin="riso"] .btn2:active{transform:translate(2px,2px);box-shadow:none}
html[data-skin="riso"] .pill,html[data-skin="riso"] .tag,html[data-skin="riso"] .badge2{
  border:2px solid #141414;font-weight:800}
html[data-skin="riso"] .pill.ok{background:rgba(14,138,85,.18)}
html[data-skin="riso"] .pill.crit{background:rgba(226,59,46,.18)}
html[data-skin="riso"] h1,html[data-skin="riso"] h2,html[data-skin="riso"] h3,html[data-skin="riso"] h4{
  font-family:inherit;font-weight:800;letter-spacing:-.01em}
html[data-skin="riso"] .secthead{font-weight:800}
/* --- komponen ber-ID: WAJIB ditulis dengan id-nya, kalau tidak kalah spesifisitas --- */
html[data-skin="riso"] #outStorePanel .osrow{border-bottom:2px solid #141414}
html[data-skin="riso"] #outStorePanel .osrow:last-child{border-bottom:none}
html[data-skin="riso"] #outStorePanel .osno{border:2px solid #141414;border-radius:8px;background:#FFC800;color:#141414;font-weight:900}
html[data-skin="riso"] #outStorePanel .osno.satu{background:#FF48B0;color:#141414}
html[data-skin="riso"] #outStorePanel .osbar{border:2px solid #141414;background:#FFFDF7;height:12px}
html[data-skin="riso"] #outStorePanel .osbar i{background:#0078BF}
html[data-skin="riso"] #outStorePanel .ostrn{border:2px solid #141414;border-radius:8px;font-weight:900}
html[data-skin="riso"] #outStorePanel .ostrn.up{background:#FF48B0;color:#141414}
html[data-skin="riso"] #outStorePanel .ostrn.dn{background:#0E8A55;color:#FFFDF7}
html[data-skin="riso"] #outStorePanel .ostrn.fl{background:#FFC800;color:#141414}
html[data-skin="riso"] #outStorePanel .oskpi>div{border:2px solid #141414;border-radius:11px;box-shadow:3px 3px 0 #141414;background:#FFF}
html[data-skin="riso"] #lbList .lbk .bar{border:2px solid #141414;background:#FFFDF7}
html[data-skin="riso"] #lbList .lbk .bar i{background:#0078BF}
html[data-skin="riso"] #lbList .lbrow.lbsel{background:rgba(255,72,176,.14);box-shadow:inset 3px 0 0 #FF48B0}
/* Tema ini TANPA animasi — tak ada yang berputar, jadi tak menambah beban baterai. */

/* ===== Outage per store — papan peringkat (A, Derry 21 Agu 2026) ===== */
#outStorePanel .osrow{display:flex;align-items:center;gap:11px;padding:11px 12px;border-bottom:1px solid var(--line);
  cursor:pointer;min-height:56px;border-radius:10px}
#outStorePanel .osrow:last-child{border-bottom:none}
#outStorePanel .osrow:hover,#outStorePanel .osrow:focus-visible{background:var(--panel2);outline:none}
#outStorePanel .osrow[aria-selected="true"]{background:rgba(217,124,96,.12);box-shadow:inset 3px 0 0 var(--acc)}
#outStorePanel .osno{width:26px;height:26px;border-radius:8px;background:var(--panel2);display:grid;place-items:center;
  font-size:12px;font-weight:800;color:var(--mut);flex:0 0 auto}
#outStorePanel .osno.satu{background:var(--red);color:var(--accbtn-fg,#fff)}
#outStorePanel .osnm{flex:1 1 auto;min-width:0}
#outStorePanel .osnm b{font-size:14px;display:block}
#outStorePanel .osnm i{font-style:normal;font-size:12px;color:var(--mut);display:block;margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#outStorePanel .osbar{width:110px;height:8px;border-radius:9px;background:var(--panel2);overflow:hidden;flex:0 0 auto}
#outStorePanel .osbar i{display:block;height:100%;background:var(--red)}
#outStorePanel .osv{width:82px;text-align:right;flex:0 0 auto}
#outStorePanel .osv b{font-size:15px;font-variant-numeric:tabular-nums}
#outStorePanel .osv i{font-style:normal;display:block;font-size:12px;color:var(--mut);margin-top:2px}
#outStorePanel .ostrn{font-size:12px;font-weight:800;padding:4px 8px;border-radius:7px;flex:0 0 auto;min-width:52px;text-align:center}
#outStorePanel .ostrn.up{background:rgba(232,131,106,.2);color:var(--red)}
#outStorePanel .ostrn.dn{background:rgba(130,190,155,.2);color:var(--green)}
#outStorePanel .ostrn.fl{background:var(--panel2);color:var(--mut)}
#outStorePanel .oskpi{display:flex;gap:9px;flex-wrap:wrap;margin:10px 0 4px}
#outStorePanel .oskpi>div{flex:1 1 150px;background:var(--panel2);border-radius:11px;padding:10px 13px}
#outStorePanel .oskpi .v{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}
#outStorePanel .oskpi .k{font-size:12px;color:var(--mut);margin-top:4px;line-height:1.35}
@media(max-width:640px){
 #outStorePanel .osbar{display:none}
 #outStorePanel .osnm i{white-space:normal}
 #outStorePanel .osrow{gap:9px;padding:12px 10px}
}
/* ===== BPDM Probation — tata letak 2 kolom (Arah B, pilihan Derry 5 Jul 2026): probation utama + event di rail samping ===== */
.bp2col{display:grid;grid-template-columns:1fr minmax(240px,290px);gap:16px;align-items:start}
.bp2col>.bp-main{min-width:0}
.bp2col>.bp-rail{min-width:0}
.bp2col>.bp-rail>.panel{margin:0}
.bp-rail:empty{display:none}
.bp2col:has(>.bp-rail:empty){grid-template-columns:1fr}
@media(max-width:900px){.bp2col{grid-template-columns:1fr}}
/* ===== Karyawan 360 — dossier 2 kolom + ring KPI (B+C, pilihan Derry 5 Jul 2026) ===== */
.e360doss{display:grid;grid-template-columns:196px 1fr;gap:18px;align-items:start;margin-top:6px}
.e360toc{position:sticky;top:12px;display:flex;flex-direction:column;gap:2px}
.e360toc a{font-size:12.5px;color:var(--mut);padding:7px 11px;border-radius:8px;border-left:2px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e360toc a:hover{background:var(--accent-soft,rgba(232,145,46,.1));color:var(--txt)}
.e360toc a.on{background:var(--accent-soft,rgba(232,145,46,.14));color:var(--acc);border-left-color:var(--acc);font-weight:700}
.e360doc{min-width:0}
.e360grp{margin-bottom:12px}
.e360grp .secthead.e360grp-h{cursor:pointer;user-select:none;display:flex;align-items:center;gap:8px}
.e360grp .e360chev{margin-left:auto;transition:transform .18s var(--ease-out);color:var(--mut);font-size:12px}
.e360grp.col .e360chev{transform:rotate(-90deg)}
.e360grp.col .e360grp-b{display:none}
.e360hero{display:flex;gap:16px;align-items:center;background:var(--panel,#171a20);border:1px solid var(--line);border-radius:16px;padding:16px 18px;margin-bottom:14px;flex-wrap:wrap}
.e360ring{width:88px;height:88px;border-radius:50%;flex:0 0 auto;display:flex;align-items:center;justify-content:center}
.e360ring .in{width:66px;height:66px;border-radius:50%;background:var(--panel,#171a20);display:flex;flex-direction:column;align-items:center;justify-content:center}
.e360ring .in b{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}
.e360ring .in span{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-top:2px}
.e360chips{display:flex;gap:9px;flex-wrap:wrap;flex:1;min-width:200px}
.e360chip{background:var(--panel2,var(--surface,#20262f));border:1px solid var(--line);border-radius:11px;padding:8px 12px;min-width:76px}
.e360chip .l{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut)}
.e360chip .v{font-size:18px;font-weight:800;font-variant-numeric:tabular-nums;margin-top:2px}
@media(max-width:820px){.e360doss{grid-template-columns:1fr}.e360toc{position:static;flex-direction:row;overflow-x:auto;gap:6px;padding-bottom:4px}.e360toc a{border-left:0;border-bottom:2px solid transparent;flex:0 0 auto}.e360toc a.on{border-left:0;border-bottom-color:var(--acc)}}
/* ===== Timeline Graphic Design — view Garis Waktu (Arah B tambahan, Derry 5 Jul 2026) ===== */
.gdtl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.gdtl-axis,.gdtl-row{display:grid;grid-template-columns:134px 1fr;gap:8px;align-items:center;min-width:540px}
.gdtl-row{margin-top:5px;cursor:pointer;border-radius:7px;padding:1px 2px}
.gdtl-row:hover{background:var(--panel2,#20262f)}
.gdtl-row.dim{opacity:.5}
.gdtl-lbl{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.gdtl-axhdr{font-family:'JetBrains Mono',monospace;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);font-weight:500}
.gdtl-track{position:relative;height:24px}
.gdtl-ticks{height:30px}
.gdtl-tick{position:absolute;top:0;transform:translateX(-50%);font-size:11px;font-family:'JetBrains Mono',monospace;color:var(--mut);text-align:center;line-height:1.15}
.gdtl-tick span{font-size:11px;opacity:.75}
.gdtl-bar{position:absolute;top:3px;height:18px;border-radius:5px;display:flex;align-items:center;padding:0 7px;font-size:12px;font-weight:800;color:#0c0c0c;white-space:nowrap;overflow:hidden;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.gdtl-dl{position:absolute;top:4px;font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--mut);white-space:nowrap;transform:translateX(6px)}
.gdtl-nowline{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--acc);z-index:2}
/* label sumbu "hari ini": saat garis hari ini dekat tepi kanan, penanda tengah (-50%) membuat
   teksnya terpotong. Ditarik penuh ke kiri garis + sedikit jarak, jadi ia selalu utuh. */
.gdtl-todaylbl{position:absolute;top:20px;transform:translateX(calc(-100% - 4px));font-size:11px;color:var(--acc);font-family:'JetBrains Mono',monospace;white-space:nowrap}
/* ===== Timeline Graphic Design — kartu tugas dirapikan (Derry 5 Jul 2026) ===== */
.gdc-card{cursor:pointer;border-radius:9px;padding:9px 10px;margin-top:6px;background:var(--panel2,#20262f);border:1px solid var(--line);}
.gdc-card.dim{opacity:.5;filter:grayscale(.5)}
.gdc-card.mine{box-shadow:0 0 0 1.5px var(--acc)}
.gdc-h{display:flex;align-items:flex-start;gap:8px;justify-content:space-between}
.gdc-t{font-weight:700;font-size:13px;line-height:1.3;flex:1;min-width:0}
.gdc-hr{flex:none;display:flex;gap:5px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.gdc-dl{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700;padding:1px 7px;border-radius:5px;background:var(--card2,#2a3140);color:var(--mut)}
.gdc-dl.hot{background:rgba(216,180,90,.2);color:var(--yellow,#d8b45a)}
.gdc-dl.late{background:rgba(229,103,92,.2);color:var(--danger,#e5675c)}
.gdc-late{font-size:12px;font-weight:800;padding:1px 7px;border-radius:999px;background:var(--danger,#e5675c);color:var(--accbtn-fg,#fff);display:inline-flex;align-items:center;gap:2px}
.gdc-m{display:flex;align-items:center;gap:6px;margin-top:7px;flex-wrap:wrap}
.gdc-av{width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,#e8912e,#b5641f);color:#1c0b02;font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;margin-right:-5px;border:1.5px solid var(--panel2,#20262f)}
.gdc-more{font-size:12px;color:var(--mut);font-weight:600;margin-left:6px}
.gdc-cov{font-size:12px;font-weight:700;color:var(--danger,#e5675c);display:inline-flex;align-items:center;gap:2px}
.gdc-not{font-size:12px;color:var(--mut)}
.gdc-f{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:8px;padding-top:7px;border-top:1px solid var(--line);font-size:12px}
.gdc-ck{display:inline-flex;align-items:center;gap:4px;cursor:pointer;color:var(--mut)}
.gdc-sel{padding:2px 6px!important;font-size:12px;height:auto;width:auto;min-width:0}
.gdc-b{padding:2px 8px;font-size:12px}
/* ===== Komplain — Inbox + SLA (Arah A, pilihan Derry 5 Jul 2026) ===== */
.ctri{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:2px 0 12px}
@media(max-width:640px){.ctri{grid-template-columns:1fr}}
.ctri .tt{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:11px 13px}
.ctri .tt.hot{border-color:rgba(229,103,92,.5);background:linear-gradient(160deg,rgba(229,103,92,.12),transparent 75%)}
.ctri .tt .l{font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.05em}
.ctri .tt .v{font-size:25px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1;margin-top:3px}
.ctri .tt.hot .v{color:var(--red)}.ctri .tt .v.y{color:var(--yellow)}
.ctri .tt .s{font-size:12px;color:var(--mut);margin-top:2px}
.cinbchips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.cinbchip{font-size:12px;font-weight:600;padding:5px 11px;border-radius:999px;background:var(--panel2);border:1px solid var(--line);color:var(--mut);cursor:pointer}
.cinbchip.on{background:var(--accent-soft,rgba(232,145,46,.14));border-color:rgba(232,145,46,.5);color:var(--acc)}
.cinb{display:flex;align-items:center;gap:11px;padding:9px 10px;border:1px solid var(--line);border-left:3px solid var(--yellow);border-radius:10px;margin-bottom:7px;background:var(--panel2);cursor:pointer}
.cinb:hover{border-color:var(--acc)}
.cinb.new{border-left-color:var(--red)}.cinb.done{border-left-color:var(--ok2,#4bbf87);opacity:.72;cursor:default}
.cinb-age{font-family:'JetBrains Mono',monospace;font-weight:800;font-size:15px;width:48px;text-align:center;flex:0 0 auto;color:var(--mut)}
.cinb-age small{display:block;font-size:12px;font-weight:500;letter-spacing:.05em;opacity:.7}
.cinb-age.r{color:var(--red)}.cinb-age.y{color:var(--yellow)}.cinb-age.g{color:var(--ok2,#4bbf87)}
.cinb-info{flex:1;min-width:0}
.cinb-t{font-weight:700;font-size:13px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cinb-m{font-size:12px;color:var(--mut);margin-top:2px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.cinb-chip{font-size:12px;font-weight:700;padding:1px 7px;border-radius:999px}
.cinb-act{flex:0 0 auto;font-size:12px;font-weight:700;padding:5px 11px;border-radius:8px;background:var(--accent-soft,rgba(232,145,46,.14));color:var(--acc);border:1px solid rgba(232,145,46,.4)}
.compFold{margin-top:8px}
.compFoldSum{cursor:pointer;list-style:none;padding:11px 14px;background:var(--panel2);border:1px solid var(--line);border-radius:12px;font-weight:700;font-size:13.5px;display:flex;align-items:center;gap:8px;color:var(--mut)}
.compFoldSum::-webkit-details-marker{display:none}
.compFold[open] .compFoldSum{border-radius:12px 12px 0 0;color:var(--txt)}
/* #148: kalender Content Planner & Creative Production dibungkus .scrollx → terbaca & bisa digeser di HP (min-width) */
@media(max-width:640px){.scrollx>table.cctab{min-width:560px}
 /* #159 1d: di HP tombol "Buat Item" selebar baris — target sentuh utama tak boleh berbagi baris
    dengan empat tombol tampilan. */
 .cprtop>.preset.pri{flex:1 1 100%;justify-content:center;min-height:44px}}
/* Kepala halaman 3 tingkat (mockup Theola #163). Dibuat helper bersama sejak awal — permintaan
   eksplisit di issue: "kalau pola ini mau dipakai halaman lain, jadikan helper sekarang, jangan
   disalin per halaman". Warna dari token (--gold/--label/--label-2/--acc), bukan hex mockup. */
.pghead{margin:0 0 14px}
.txnhl{background:var(--accent-soft);color:inherit;border-radius:3px;padding:0 1px}
/* ===== CONTENT PLANNER — design system Theo (#171), dikerjakan 22 Sep 2026 =====
   TOKEN TAHAP. Sisanya (bg/surface/label/separator/accent/font) sudah nilai MJDS dan TIDAK
   dideklarasikan ulang — tokens.json Theo diuji token per token dan cocok persis.
   Dua penyimpangan DISENGAJA, jangan diseragamkan balik ke token app:
     --st-produksi terang #7C5A22 (bukan --gold #8F6F38): gold hanya 3,49:1 di atas surface —
       lolos sebagai ikon, GAGAL sebagai teks 12px.
     --st-belum gelap #A79A8A (bukan --label-3 gelap #988C7D): --label-3 jatuh ke 3,99:1 di atas surface-3.
   Sisanya menunjuk token yang sudah ada supaya ikut berubah saat skin mengubahnya. */
:root{--st-belum:#A79A8A;--st-produksi:var(--gold);--st-review:var(--purple);--st-terjadwal:var(--info);--st-tayang:var(--ok)}
[data-theme="light"]{--st-belum:var(--label-2);--st-produksi:#7C5A22}
/* StatusPill: label + ikon, latar lembut dari warna tahap itu sendiri (color-mix, jadi satu nilai
   cukup untuk teks & latar). TIDAK PERNAH titik warna polos — termasuk di legenda. */
.cplpill{display:inline-flex;align-items:center;gap:5px;border-radius:999px;font-weight:700;line-height:1.5;
  color:var(--pw,var(--st-belum));background:color-mix(in srgb,var(--pw,var(--st-belum)) 14%,transparent);
  border:1px solid color-mix(in srgb,var(--pw,var(--st-belum)) 34%,transparent);white-space:nowrap;vertical-align:middle}
.cplpill svg{width:1em;height:1em;flex:0 0 auto}
/* ReadinessMeter: 3 segmen, NETRAL (label-2 di atas track) — kesiapan dihitung sistem, bukan status. */
.cplmeter{display:inline-flex;gap:2px;align-items:center;vertical-align:middle;margin-right:5px}
.cplseg{width:7px;height:4px;border-radius:2px;background:var(--track);display:inline-block}
.cplseg.on{background:var(--label-2)}
.cplsiap{display:inline-flex;align-items:center;gap:4px;color:var(--label-2);white-space:nowrap}
/* chip netral: tipe/platform/PIC/brand dibedakan lewat TEKS, bukan warna (aturan pokok #1). */
/* ModeToggle / ChannelMark / tarik-lepas (#171 butir 5-6) */
.cpltitle{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-weight:700;font-size:11px;line-height:1.25;word-break:break-word}
/* Judul kartu kalender WAJIB terpotong 2 baris. Terukur sebelum ditambal: kartu selebar 76px,
   judul 'Release Beans "Aceh Avatara Carbonic Maceration"' tumbuh jadi 528px (≈25 baris) dan satu
   kartu mendorong seluruh baris minggu. Judul lengkap tetap ada di atribut title (tooltip). */
.cplmono{display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.04em;padding:1px 4px;margin-right:3px;border-radius:4px;background:var(--surface-2,var(--panel2));color:var(--label-2);border:1px solid var(--separator);white-space:nowrap}
.cplpic{font-size:9.5px;color:var(--label-3);white-space:nowrap}
.cplrow2{display:flex;gap:3px;align-items:center;flex-wrap:wrap;margin-top:3px}
/* DropIndicator: sel tujuan diberi garis & latar lembut — pakai warna AKSEN, bukan warna tahap,
   supaya tak terbaca sebagai "tahapnya berubah". */
.cpldrop{outline:2px dashed var(--acc);outline-offset:-3px;background:var(--accent-soft)!important}
.cplchipcal{transition:transform .24s var(--ease-out,ease),opacity .24s ease}
.cplchipcal.cpldragging{opacity:.4}
.cplchipcal[draggable="true"]{cursor:grab}
.cplchipcal[draggable="true"]:active{cursor:grabbing}
@media(prefers-reduced-motion:reduce){.cplchipcal{transition:opacity .24s ease}}
/* ---- pegangan geser kartu kalender Content Planner (#173) ----
   Kartu diberi position:relative supaya pegangan bisa menempel di tepi kanannya. Hanya kartu
   ber-.cplhasgrip yang dilebarkan padding-nya — kalender Gabungan read-only tidak punya pegangan
   dan harus tetap serapat sekarang. */
.cplchipcal{position:relative}
/* top/bottom -1px MENUTUPI garis tepi kartu: kotak mutlak diukur dari padding-box, jadi tanpa ini
   pegangan di kartu 44px hanya jadi 42px — dua piksel yang membuatnya gagal ambang 44px Theola. */
.cplhasgrip{padding-right:20px!important}
.cplgrip{position:absolute;top:-1px;right:0;bottom:-1px;width:17px;min-height:0;padding:0;border:0;background:transparent;color:var(--txt);opacity:.42;cursor:grab;display:flex;align-items:center;justify-content:center;touch-action:none;border-radius:0 6px 6px 0}
.cplgrip:hover{opacity:.95;background:color-mix(in srgb,var(--txt) 9%,transparent)}
.cplgrip:focus-visible{opacity:1;outline:2px solid var(--acc);outline-offset:-2px}
.cplgrip.on{opacity:1;background:var(--accent-soft)}
.cplgrip:active{cursor:grabbing}
.cplnet{border-left:0!important;background:var(--surface-2,var(--panel2));color:var(--label-2);border:1px solid var(--separator)}
@media(max-width:640px){.cplpill{font-size:11px}.cplseg{width:6px}}
/* Transaksi di layar sempit (Derry 20 Sep 2026 "mobile butuh rekonstruksi") — terukur di harness 390px:
   kotak cari utama menyusut jadi 157px karena berbagi baris dengan tombol Cari+Reset, dan 10 pintasan
   pecah menjadi 6 baris (±300px tinggi sebelum saringan pertama). Di HP: kotak cari mendapat barisnya
   sendiri, tombolnya mengisi sisa baris berikutnya, dan tiap deret pintasan jadi satu strip yang digeser
   (pola iOS) — bukan dinding tombol. Strip tetap bisa diakses papan ketik karena isinya tombol biasa. */
@media(max-width:640px){
 /* kotak cari & deret pintasan digaya INLINE oleh perendernya (flex:1, flex-wrap:wrap), jadi
    aturan di sini WAJIB !important — melawan atribut style, bukan melawan spesifisitas. */
 #txnPanel #txnQKw{flex:1 1 100%!important;min-width:100%!important}
 #txnPanel>div:first-of-type>button.preset{flex:1 1 calc(50% - 5px)}
 #txnPanel .txnbar{flex-wrap:nowrap!important;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}
 #txnPanel .txnbar::-webkit-scrollbar{display:none}
 #txnPanel .txnbar>*{flex:0 0 auto}
 #txnPanel #txnRecent{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none}
 #txnPanel #txnRecent::-webkit-scrollbar{display:none}
 #txnPanel #txnRecent>*{flex:0 0 auto;max-width:78vw}
 /* Papan sinyal audit (fitur sesi lain, commit 77243d2): barisnya `.preset` selebar 377px di dalam
    kotak 312px, jadi nilai rupiahnya terpotong di luar layar 390px. Chip panjang boleh melipat;
    yang di dalam strip geser tetap satu baris. */
 #txnPanel .preset{max-width:100%;flex-wrap:wrap;height:auto;white-space:normal;text-align:left}
 #txnPanel .txnbar .preset,#txnPanel #txnRecent .preset{max-width:none;flex-wrap:nowrap;white-space:nowrap}
}.txntab tbody tr.txnrow{cursor:pointer}.txntab tbody tr.txnrow:hover{background:var(--accent-soft)}.txntab tr.txn-void td{opacity:.78}
/* Panel hari SELALU di BAWAH kalender (permintaan Derry 15 Sep: "itu selasa 15 sept terlalu
   lebar, pindahin aja ke atas banget atau ke bawah").

   Riwayat singkat supaya tak terulang: panel ini semula duduk di SAMPING selebar 320px, lalu
   perbaikan sebelumnya menurunkannya lewat @media(max-width:1200px){.cprkalwrap{display:block}}.
   Aturan itu TIDAK PERNAH BERLAKU: display:flex ditulis INLINE pada elemennya, dan inline selalu
   mengalahkan lembar gaya tanpa !important. Yang lolos justru pasangannya —
   #cprPanel{width:auto!important;max-width:none!important} — sehingga panel kehilangan patokan
   320px dan MELEBAR mengikuti isinya, meremas 7 kolom kalender jadi ~80px. Jadi tata letak
   sekarang dipegang CSS; jangan kembalikan display ke atribut style. */
.cprkalwrap{display:block}
.cprkalwrap #cprPanel{margin-top:12px}
/* Isi panel bawah: daftar item mengalir, 'Tambah cepat' jadi kolom sendiri di layar lebar. */
.cprpanelisi{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;align-items:start}
.cprpanelkartu{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:8px}
.cprcepat{border-left:1px solid var(--separator);padding-left:14px}
@media(max-width:860px){.cprpanelisi{grid-template-columns:1fr}
 .cprcepat{border-left:0;border-top:1px solid var(--separator);padding:9px 0 0}}
/* Lebar minimum grid kalender. Terukur 15 Sep di Chrome (judul 24 karakter, 1 tag + "+N"):
   kolom 85px -> SEMUA judul & tag terpotong; 105px -> judul masih terpotong; 125px -> bersih.
   7 x 125 = 875. Di bawah itu kalender MENGGULIR mendatar di dalam .scrollx, bukan meremas
   kolomnya. .cctab umum tetap 560px karena dipakai kalender lain yang selnya tanpa kartu. */
.cprkalwrap .cctab{min-width:875px}
/* sorot sasaran tarik-lepas (Creative Production) */
.cprdrop{outline:2px dashed var(--acc);outline-offset:-2px;background:var(--accent-soft)}
/* === PEGANGAN UJUNG: memanjangkan / memendekkan jadwal produksi (Derry 21 Sep 2026, pilihan A+C) ===
   A = tarik ujung kanan batang. C = ketuk pegangan lalu ketuk tanggal akhirnya (layar sentuh &
   papan ketik). Pegangan sengaja <button>: ia satu-satunya jalan ke fitur ini, jadi harus bisa
   di-Tab dan ditekan Enter — penjaga ergonomi menghitung target klik tanpa jalur papan ketik
   sebagai kemunduran, dan memang benar. touch-action:none supaya jari menarik, bukan menggulir. */
.cprchipcal{position:relative}
.cprgrip{position:absolute;top:0;right:0;bottom:0;width:15px;min-height:0;padding:0;border:0;background:transparent;color:var(--txt);opacity:.42;cursor:ew-resize;display:flex;align-items:center;justify-content:center;touch-action:none;border-radius:0 7px 7px 0}
.cprgrip::before{content:"";width:2px;height:11px;border-radius:2px;background:currentColor;box-shadow:3px 0 0 currentColor}
.cprgrip:hover,.cprgrip:focus-visible{opacity:1;background:color-mix(in srgb,var(--acc) 26%,transparent)}
.cprgrip.on{opacity:1;background:var(--acc);color:var(--accbtn-fg,#111)}
/* !important dipakai SENGAJA: lebar sel kalender membuat padding chip ditulis inline oleh
   perendernya, dan inline mengalahkan kelas. Tanpa ini judul menyelinap ke bawah pegangan. */
.cprchipcal.cpr-adagrip{padding-right:19px!important}
/* Jari tak bisa memegang strip 15px: di layar sentuh pegangannya dilebarkan, dan di tampilan
   agenda (HP) ia jadi tombol biasa di ujung baris — di sana tak ada grid tanggal untuk ditarik. */
@media(hover:none){.cprgrip{width:30px}.cprchipcal.cpr-adagrip{padding-right:34px!important}}
.cprgrip-ag{position:static;width:auto;min-width:44px;min-height:44px;opacity:.75;border-radius:9px;border:1px solid var(--separator);cursor:pointer}
.cprgrip-ag::before{display:none}
.cprakhirbar,.tglbar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom,0px) + 72px);z-index:90;display:flex;gap:10px;align-items:center;max-width:94vw;padding:10px 14px;border-radius:12px;background:var(--panel);border:1px solid var(--acc);box-shadow:0 10px 30px rgba(0,0,0,.45);font-size:13px}
.pghead-eb{font-weight:700;font-size:10.5px;line-height:1;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:7px}
.pghead-t{display:flex;align-items:center;gap:10px;margin:0;font-weight:700;font-size:30px;line-height:1.1;letter-spacing:-.025em;color:var(--label)}
.pghead-t>svg{color:var(--acc);flex:none}
.pghead-t>span{min-width:0;overflow-wrap:anywhere}
.pghead-s{margin-top:7px;font-weight:400;font-size:13.5px;line-height:1.55;max-width:760px;color:var(--label-2)}
/* HP: 30px memaksa gulir mendatar pada judul panjang (checklist penerimaan #163) */
@media(max-width:640px){.pghead-t{font-size:22px;gap:8px}.pghead-s{font-size:13px}}
.sw{position:relative;display:inline-flex;align-items:center;gap:10px;cursor:pointer}
.sw input{position:absolute;opacity:0;width:0;height:0}
.sw .kn{width:50px;height:30px;border-radius:999px;background:var(--track,#39404a);transition:background .25s var(--ease-std);flex:0 0 auto;position:relative}
.sw .kn::after{content:'';position:absolute;top:2px;left:2px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .25s var(--ease-std)}
.sw input:checked+.kn{background:var(--green)}
.sw input:checked+.kn::after{transform:translateX(20px)}
:where(button.shero,button.srow,button.mtile,button.ovstrip,button.litem){width:100%;font:inherit;color:inherit;text-align:left;border:0;background:none;appearance:none;-webkit-appearance:none}
@media(max-width:640px){.espgo{width:100%;justify-content:center}}
.shero{display:flex;align-items:center;gap:13px;background:var(--surface);border-radius:16px;padding:14px 16px;margin-bottom:14px;cursor:pointer}
.shero .av{width:50px;height:50px;border-radius:50%;background:var(--accent);color:var(--accbtn-fg,#fff);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:20px;flex:0 0 auto}
.shero b{font-size:16px}.shero .sub2{font-size:13px;color:var(--label-2);margin-top:2px}
.sgrp{font-size:12px;letter-spacing:var(--ls-caps,.14em);font-weight:600;color:var(--label-3,var(--label-2));margin:18px 14px 7px;text-transform:uppercase}
.scard{background:var(--surface);border-radius:18px;overflow:hidden}
.srow{display:flex;align-items:center;gap:13px;min-height:52px;padding:6px 16px;cursor:pointer;position:relative}
.srow+.srow::before{content:'';position:absolute;left:58px;right:0;top:0;height:1px;background:var(--separator)}
/* Saat daftar disaring, baris yang tersembunyi TETAP jadi saudara CSS, jadi baris terlihat
   pertama bisa kebagian garis pemisah di atasnya. Penyaring menandainya .sr1. */
.srow.sr1::before{display:none}
/* ===== Tabel lebar di HP: kartu bertumpuk, bukan tabel yang digeser ke samping =====
   (F2/F3 #124 Theola — "penyesuaian halaman ber-traffic tinggi").
   Tabel-tabel ini 7-9 kolom dengan min-width 820-1150px, jadi di layar 375px satu baris harus
   digeser ratusan piksel untuk dibaca utuh. Di lebar HP baris diubah jadi kartu: judul di atas,
   sisanya pasangan label-nilai. Labelnya diambil dari atribut data-l, sehingga TIDAK ada teks yang
   digandakan di markup dan versi desktop sama sekali tidak berubah.
   Pemakai: Tugas (F2) · Laporan Anak Lapang · Rekap GRO · KPI Shift Leader · Komplain ·
   Katalog Merchandise (F3).
   CATATAN URUTAN: barisnya flex-kolom, bukan block, supaya kolom judul (data-l="") bisa naik ke
   atas kartu lewat `order` walau di tabel aslinya ia bukan kolom pertama — di Laporan & Komplain
   kolom pertama adalah Tanggal, dan kartu yang dibuka dengan tanggal (bukan isi laporan) tidak
   terbaca. Aksi selalu turun ke dasar kartu. */
@media (max-width:640px){
 table.tkmob{min-width:0!important;width:100%}
 table.tkmob thead{display:none}
 table.tkmob,table.tkmob tbody,table.tkmob td{display:block;width:auto}
 table.tkmob tr{display:flex;flex-direction:column;width:auto;border:1px solid var(--separator);border-radius:14px;padding:11px 13px;margin:0 0 10px;background:var(--surface)}
 table.tkmob td{border:0!important;padding:3px 0;position:static!important;min-width:0!important}
 table.tkmob td[data-l=""]{order:-1;font-size:15px;line-height:1.35;margin-bottom:5px;max-width:none!important;white-space:normal!important}
 table.tkmob td[data-l]:not([data-l=""]){display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px;align-items:baseline;text-align:left!important;white-space:normal!important}
 table.tkmob td[data-l]:not([data-l=""])::before{content:attr(data-l);font-size:12px;color:var(--mut);letter-spacing:.02em}
 table.tkmob td[data-aksi]{order:1;margin-top:8px;display:flex;gap:6px;flex-wrap:wrap;white-space:normal!important}
 table.tkmob td[data-aksi]:empty{display:none}
}
/* ===== KPI Shift Leader di HP (F3 #124, lanjutan) =====
   Tabel ini TIDAK bisa memakai pola kartu .tkmob: 4 kolomnya rowspan (Kategori, Total Poin, Bobot,
   Poin Akhir) dan pola kartu membuang rowspan sehingga pengelompokan kategorinya hancur. Pendekatan
   di sini: tiap tr jadi flex-wrap dengan `order` — sel rowspan (yang hanya ada di tr PERTAMA tiap
   kategori) naik jadi pita header kategori + 3 kotak subtotal berlabel (label via ::before), lalu
   indikator mengalir di bawahnya. tr berikutnya dalam kategori yang sama hanya punya 4 sel
   (indikator·target·poin·maks) dengan order yang sama, jadi susunannya konsisten. Desktop tak
   tersentuh: semuanya di dalam media query + scoping #slkTab. */
@media (max-width:640px){
 #slkTab{min-width:0!important;width:100%}
 #slkTab thead{display:none}
 #slkTab,#slkTab tbody,#slkTab tfoot{display:block;width:auto}
 #slkTab tbody tr{display:flex;flex-wrap:wrap;gap:6px;align-items:stretch;border:0;padding:6px 4px 2px;margin:0}
 #slkTab td{display:block;border:0!important;padding:2px 0}
 #slkTab td.slk-cat{order:-9;flex-basis:100%;background:var(--accent-soft);border-radius:8px;padding:7px 10px!important;border-top:0!important;font-size:13px}
 #slkTab td.slk-tot,#slkTab td.slk-bob,#slkTab td.slk-pa{order:-8;flex:1;text-align:center;background:var(--panel2);border-radius:8px;padding:5px 4px!important;border-top:0!important}
 #slkTab td.slk-tot::before{content:'Total Poin'}
 #slkTab td.slk-bob::before{content:'Bobot'}
 #slkTab td.slk-pa::before{content:'Poin Akhir'}
 #slkTab td.slk-tot::before,#slkTab td.slk-bob::before,#slkTab td.slk-pa::before{display:block;font-size:12px;color:var(--mut);font-weight:400;letter-spacing:.03em}
 #slkTab td.slk-ind{order:1;flex-basis:100%;padding:6px 2px 0!important;line-height:1.35}
 #slkTab td.slk-tgt,#slkTab td.slk-sc,#slkTab td.slk-max{order:2;flex:1;text-align:center;white-space:normal}
 #slkTab td.slk-tgt::before{content:'Target'}
 #slkTab td.slk-sc::before{content:'Poin'}
 #slkTab td.slk-max::before{content:'Maks'}
 #slkTab td.slk-tgt::before,#slkTab td.slk-sc::before,#slkTab td.slk-max::before{display:block;font-size:12px;color:var(--mut);letter-spacing:.03em}
 #slkTab td.slk-sc{background:transparent!important}
 #slkTab td.slk-sc input{width:100%;max-width:110px;text-align:center}
 #slkTab td.slk-tgt,#slkTab td.slk-max{padding-top:4px!important}
 #slkTab tfoot tr{display:flex;align-items:center;gap:10px;border-top:2px solid var(--acc);margin-top:8px;padding:8px 4px}
 #slkTab tfoot td{display:block;border:0!important}
 #slkTab tfoot td:first-child{flex:1;text-align:left!important;padding:0!important}
}
.mq{display:flex;align-items:center;gap:9px;margin:2px 14px 6px;padding:10px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--separator)}
.mq input{flex:1;min-width:0;border:0;background:transparent;color:var(--txt);font-size:16px;outline:none}
.mq svg{flex:0 0 auto;color:var(--mut)}
.srow:active{background:var(--surface-2)}
.tile{width:29px;height:29px;border-radius:7.5px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;color:#fff}
.spill{position:fixed;left:50%;transform:translateX(-50%) translateZ(0);will-change:transform;bottom:calc(env(safe-area-inset-bottom,0px) + 78px);width:88%;max-width:400px;background:var(--nav-material,rgba(30,33,40,.85));backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--separator);border-radius:999px;padding:13px 19px;display:flex;align-items:center;gap:10px;color:var(--label-2);font-size:15px;cursor:pointer;z-index:55;box-shadow:0 6px 24px rgba(0,0,0,.25)}
@media(min-width:1025px){.spill{display:none}}
.srow .slbl{font-size:15px;flex:1;min-width:0}
.srow .sval{font-size:13px;color:var(--label-2);display:flex;align-items:center;gap:7px}
.sbadge{background:var(--red);color:#fff;border-radius:999px;min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;padding:0 6px}
.srow .chev{opacity:.3;flex:0 0 auto}
.empty .ei{width:46px;height:46px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--label-3);margin-bottom:10px}
.empty .et{font-weight:700;color:var(--label);font-size:15px}
.empty .es{font-size:13px;margin-top:3px;line-height:1.5}
#acbox{position:fixed;z-index:100000;background:var(--surface);border:1px solid var(--separator);border-radius:11px;box-shadow:var(--sh-sm),0 14px 44px rgba(0,0,0,.25);max-height:280px;overflow:auto;font-size:14px;-webkit-overflow-scrolling:touch}
#acbox .aci{padding:8px 12px;cursor:pointer;border-bottom:1px solid var(--separator);color:var(--label);display:flex;align-items:center;gap:9px}
#acbox .aci:last-child{border-bottom:0}#acbox .aci:hover,#acbox .aci.on{background:var(--surface-2)}
#acbox .aci .acn{color:var(--label-2);font-size:12px;margin-left:6px}
#acbox .aci .acav{width:26px;height:26px;border-radius:50%;object-fit:cover;flex:0 0 auto;background:var(--surface-2)}
#acbox .aci .acav-ph{width:26px;height:26px;border-radius:50%;flex:0 0 auto;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:var(--label-2)}
/* ===== SP / Teguran dikelompokkan PER ORANG (bentuk C, pilihan Derry 21 Agu 2026) =====
   Tabel lama menyajikan KEJADIAN satu per satu, sedangkan keputusan HR selalu tentang ORANG:
   berapa catatan yang dia punya, seberapa berat yang terberat, dan berapa yang MASIH berlaku
   (aturan SP 3 bulan). Pertanyaan itu tak terjawab oleh tabel — orang harus memindai manual dan
   menghitung sendiri nama yang muncul berulang. Bentuk ini menjawabnya di baris pertama, lalu
   rinciannya dibuka saat diklik. Tanpa tabel, jadi di HP tak perlu digeser mendatar. */
.spg{background:var(--panel);border:1px solid var(--line);border-radius:13px;margin-bottom:8px;overflow:hidden}
.spg.on{border-color:rgba(217,124,96,.42)}
.spgh{display:flex;align-items:center;gap:11px;padding:12px 13px;cursor:pointer;width:100%;
 background:none;border:0;color:var(--txt);font:inherit;text-align:left;min-height:56px}
.spgh:hover{background:var(--surface-2)}
.spgd{width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.spgn{font-size:14px;font-weight:700;line-height:1.25}
.spgm{flex:1;min-width:0;font-size:12px;color:var(--mut);line-height:1.35}
.spgm2::before{content:' \00b7 '}
.spga{color:var(--mut);display:flex;flex:0 0 auto;transition:transform .16s ease}
.spg.on .spga{transform:rotate(90deg)}
.spgb{border-top:1px solid var(--line);padding:2px 13px 8px}
.spgr{display:flex;align-items:flex-start;gap:11px;padding:10px 0;border-bottom:1px solid rgba(230,225,210,.07);flex-wrap:wrap}
.spgr:last-child{border-bottom:0}
.spgt{width:96px;font-size:12.5px;font-weight:700;font-variant-numeric:tabular-nums;flex:0 0 auto}
.spgt i{color:rgba(199,188,172,.55);font-weight:400;font-size:12px}
.spgk{flex:1;min-width:150px;font-size:12.5px;color:var(--mut);line-height:1.45}
.spgx{display:flex;gap:5px;flex:0 0 auto}
.spgib{width:29px;height:29px;border-radius:9px;border:1px solid var(--line);background:transparent;
 color:var(--mut);display:flex;align-items:center;justify-content:center;cursor:pointer}
.spgib:hover{color:var(--txt);border-color:var(--separator-strong)}
.spsec{display:flex;align-items:center;gap:10px;margin:16px 2px 8px}
.spsec span{font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--mut);white-space:nowrap}
.spsec i{flex:1;height:1px;background:var(--line)}
/* HP: nama dan keterangan-ringkas DITUMPUK. Sebaris, nama panjang seperti "Manalu Richard
   Arthur Daniel" terjepit jadi kolom sempit 4 baris dan keteranganya menyambung tanpa jeda —
   terukur di 375px. Baris rincian juga ditumpuk: tanggal, lalu jenis+keterangan, lalu status. */
@media(max-width:640px){
 .spgh{flex-wrap:wrap;align-items:flex-start;padding:13px}
 .spgd{margin-top:6px}
 .spgm{flex:1 1 0}                      /* 0, bukan auto: biar tanda panah tetap sebaris */
 .spgn{display:block;margin-bottom:3px;font-size:14.5px}
 .spgm2{display:block}
 .spgm2::before{content:none}
 .spga{align-self:center}
 .spgh>.pill{order:3;flex:0 0 100%;margin-left:20px;margin-top:9px}   /* 100%: lencana SELALU turun ke baris sendiri, biar nama panjang tak terjepit jadi kolom sempit */
 /* Rincian ditumpuk: tanggal -> jenis+status -> keterangan -> tombol. Jenis & status naik ke atas
    keterangan karena itu yang dibaca lebih dulu ("seberapa berat, masih berlaku?"). */
 .spgt{flex:1 1 100%}
 .spgr>.pill{order:2}
 .spgk{order:3;flex:1 1 100%;min-width:0}
 .spgx{order:4;margin-left:auto}
}
/* Action strip "Perlu Aksi" di Home (semua role) */
.actstrip{display:flex;gap:10px;overflow-x:auto;padding:2px 0 6px;margin:0 0 14px}
.actstrip/* #90: scrollbar kini ditampilkan */
.actc{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:104px;padding:13px 14px;border-radius:var(--r-card);background:var(--surface);border:1px solid var(--separator);box-shadow:var(--sh-sm);cursor:pointer;position:relative;color:var(--label);transition:transform var(--dur-press) var(--ease-out),border-color var(--dur-state)}
.actc:active{transform:scale(.96)}.actc:hover{border-color:var(--accent)}
.actc .acti{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent)}
.actc .acti svg{width:19px;height:19px}
.actc .actl{font-size:13px;font-weight:600}
.actc .actb{position:absolute;top:9px;right:9px;background:var(--red);color:#fff;font-size:12px;font-weight:700;min-width:18px;height:18px;line-height:18px;text-align:center;border-radius:9px;padding:0 4px}
h2.title .ttl-ic{display:inline-flex;align-items:center;justify-content:center;vertical-align:-7px;margin-right:10px;width:32px;height:32px;border-radius:8.5px;background:var(--accent);color:var(--on-accent)}
h2.title .ttl-ic svg{width:18px;height:18px;stroke-width:2.2}
.nfava svg{width:20px;height:20px}
/* Hero Overview (pola mockup) */
.ovalerts{display:flex;flex-direction:column;gap:8px;margin:12px 0 0}.ovstrip{display:flex;align-items:center;gap:10px;background:color-mix(in srgb,var(--acc) 10%,transparent);border:1px solid color-mix(in srgb,var(--acc) 30%,transparent);border-radius:12px;padding:9px 13px;font-size:12.5px;line-height:1.45}.ovstrip .n{background:var(--acc);color:#141414;border-radius:99px;font-weight:800;font-size:12px;padding:2px 8px;flex:0 0 auto}.ovstrip b{font-weight:700}.ovstrip .more{margin-left:auto;color:var(--acc);font-weight:700;white-space:nowrap;cursor:pointer}.ovstrip .preset{margin-left:auto}@media(max-width:640px){.ovstrip{flex-wrap:wrap}.ovstrip .more,.ovstrip .preset{margin-left:0}}.ovhero{border-radius:24px;padding:26px clamp(20px,3vw,32px);color:var(--ovhero-fg,#F6F1E7);position:relative;overflow:hidden;background:var(--ovhero-bg,linear-gradient(135deg,#1C1009,#301D17 55%,#231B14));border:1px solid var(--ovhero-line,rgba(217,124,96,.22));box-shadow:0 18px 44px -18px rgba(0,0,0,.6);margin-bottom:14px}
/* Gradien hero dulu DIPAKU gelap, jadi ia tetap hitam di SEMUA tema terang — Terang, La Cabra,
   Sakura, dan Komik Riso. Ketahuan saat memasang tema riso 21 Agu 2026. Sekarang lewat token
   supaya tiap tema terang bisa memberi versinya sendiri. */
html[data-theme="light"]{--ovhero-bg:linear-gradient(135deg,#FBFAF4,#F1EFE4 55%,#E8E5D6);--ovhero-fg:#251511;--ovhero-line:rgba(100,15,7,.20)}
html[data-skin="lacabra"]{--ovhero-bg:linear-gradient(135deg,#FFFFFF,#F8F1EC 55%,#F2EFE4);--ovhero-fg:#1A1A1A;--ovhero-line:rgba(16,132,116,.28)}
html[data-skin="playbook"]{--ovhero-bg:linear-gradient(135deg,#FFFBF0,#FAF2DF 52%,#F4E9CF);--ovhero-fg:#2B1A12;--ovhero-line:rgba(192,57,43,.26)}
html[data-skin="anime"]{--ovhero-bg:linear-gradient(135deg,#FFF5FA,#FFE3F0 55%,#FFD7EC);--ovhero-fg:#4A1130;--ovhero-line:rgba(255,95,162,.35)}
html[data-skin="riso"]{--ovhero-bg:linear-gradient(135deg,#FFC800,#FF48B0 55%,#0078BF);--ovhero-fg:#141414;--ovhero-line:#141414}
html[data-skin="riso"] .ovhero{border-width:2.5px;box-shadow:5px 5px 0 #141414}
.ovhero::after{content:"";position:absolute;right:-44px;top:-54px;width:210px;height:210px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.28),transparent 70%)}
.ovhero .hl{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#EF9F80;position:relative}
.ovhero .hb{font-size:clamp(40px,7vw,62px);font-weight:800;margin:6px 0 8px;position:relative;font-variant-numeric:tabular-nums;letter-spacing:-.03em;line-height:.95}
.ovhero .hs{font-size:13px;font-weight:500;opacity:.95;position:relative;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ovhero .hpill{display:inline-flex;align-items:center;gap:4px;background:rgba(130,190,155,.18);color:#82BE9B;padding:5px 11px;border-radius:99px;font-size:12px;font-weight:700}
.ovhero .hspark{position:absolute;left:0;right:0;bottom:-1px;margin:0;opacity:.6;pointer-events:none}
.ovhero .hspark svg{width:100%;height:66px;stroke:var(--accent);stroke-width:2.5;fill:none}
/* ikon di bottom nav & tombol mengambang (Fase 2 lanjutan) */
#botnav .bi{display:inline-flex;align-items:center;justify-content:center}
#botnav .bi svg{width:24px;height:24px}
#quickBtns button{display:flex!important;align-items:center;justify-content:center}
#quickBtns button svg{width:20px;height:20px}
/* === LINK-IN-BIO PREVIEW (scoped) === */
#lbPreview{max-width:430px;margin:0 auto;background:radial-gradient(120% 60% at 50% 0%,#F6C765,#EFB23E 60%);border-radius:22px;padding:26px 16px 34px;color:#1F3A54}
#lbPreview .lbava{width:84px;height:84px;border-radius:50%;margin:4px auto 12px;background:#FBF3E2;border:4px solid rgba(255,255,255,.7);display:flex;align-items:center;justify-content:center;color:#1F3A54;box-shadow:0 8px 22px -8px rgba(31,58,84,.35)}
#lbPreview .lbava svg{width:38px;height:38px;stroke-width:1.7}
#lbPreview .lbname{text-align:center;font-size:22px;font-weight:800;letter-spacing:-.02em;line-height:1.2}
#lbPreview .lbtag{text-align:center;font-size:14px;font-weight:700;opacity:.78;margin-top:5px}
#lbPreview .lbsoc{display:flex;justify-content:center;gap:20px;margin:14px 0 2px;color:#1F3A54}
#lbPreview .lbsoc svg{width:24px;height:24px}
#lbPreview .lblab{display:flex;align-items:center;gap:8px;margin:22px 4px 10px;color:#1F3A54;font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
#lbPreview .lblab::after{content:"";flex:1;height:1px;background:rgba(31,58,84,.18)}
#lbPreview .lbcard{display:flex;align-items:center;gap:13px;background:#1F3A54;color:#fff;border-radius:18px;padding:14px 13px;margin-bottom:11px;box-shadow:0 8px 22px -8px rgba(31,58,84,.35);text-decoration:none;transition:transform .16s var(--ease-out),background-color .2s}
#lbPreview .lbcard:active{transform:scale(.975);background:#274764}
#lbPreview .lbcard.sub{margin-left:18px;background:#274764}
#lbPreview .lbcard.banner{flex-direction:column;align-items:stretch;gap:0;padding:0;overflow:hidden}
#lbPreview .lbcard.banner .lbbimg{width:100%;height:120px;object-fit:cover;display:block}
#lbPreview .lbcard.banner .lbbrow{display:flex;align-items:center;gap:10px;padding:12px 13px}
#lbPreview .lbic{flex:0 0 42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.1);color:#fff}
#lbPreview .lbic svg{width:21px;height:21px}
#lbPreview .lbbody{flex:1;min-width:0}
#lbPreview .lbt{font-size:15px;font-weight:700;line-height:1.2}
#lbPreview .lbs{font-size:12px;font-weight:500;color:rgba(255,255,255,.66);margin-top:2px}
#lbPreview .lbrate{display:inline-flex;align-items:center;gap:3px;font-size:13px;font-weight:700;color:#fff;background:rgba(244,180,0,.18);padding:3px 9px;border-radius:99px;margin-left:auto;white-space:nowrap}
#lbPreview .lbrate svg{width:12px;height:12px;fill:#F4B400;stroke:#F4B400}
#lbPreview .lbchev{color:rgba(255,255,255,.5)}#lbPreview .lbchev svg{width:17px;height:17px}
.lbrow{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--separator);flex-wrap:wrap}
/* ===== Seret-untuk-urutkan Kelola Link — mesin Pointer Events (req Derry 20 Agu: "permulus") =====
   Yang lama: HTML5 drag (draggable/ondrop). Tiga hal membuatnya terasa kasar, dan semuanya hilang di sini:
   (a) TAK ADA umpan balik — tak kelihatan akan jatuh di mana; (b) MATI di layar sentuh (iPad/HP Theola);
   (c) tiap jatuh memunculkan dialog lalu memuat ulang seluruh daftar, jadi daftarnya berkedip.
   Pointer Events menyatukan tetikus & sentuh, jadi satu mesin untuk semua peranti. */
.lbgrip{display:inline-flex;align-items:center;justify-content:center;width:24px;height:30px;margin:-4px -2px -4px -4px;
  border-radius:7px;color:var(--mut);cursor:grab;flex:0 0 auto;touch-action:none;-webkit-user-select:none;user-select:none;
  transition:background .12s,color .12s}
.lbgrip:hover{background:var(--surface-2);color:var(--txt)}
.lbgrip:active{cursor:grabbing}
.lbrow.lbdrag{position:relative;z-index:30;cursor:grabbing;background:var(--panel);border-radius:10px;
  box-shadow:0 10px 26px rgba(0,0,0,.28);border-bottom-color:transparent;
  transform:scale(1.012);will-change:transform;pointer-events:none}
.lbrow.lbdim{opacity:.5}
/* ===== UX Alternatif A (Derry 21 Agu 2026): satu baris satu garis =====
   Diukur sebelum diubah, pada CSS & data asli: kolom kerja 363px dari layar 1440,
   tinggi baris 128px (HP 229px), daftar 3.502px = 3,9 layar (HP 6.021px = 7,4 layar),
   145 kendali di daftar dan SEMUANYA di bawah ambang sentuh 44px — termasuk tombol
   Hapus yang cuma 34x34, target terkecil untuk aksi paling merusak.
   Maka: baris hanya membawa identitas + angka; seluruh kendali pindah ke panel detail
   yang muncul saat baris dipilih, di tempat yang lega. */
.lbrow{min-height:52px;flex-wrap:nowrap;align-items:center}
#lbList .lbrow .lbtx{flex:1 1 auto;min-width:0}  /* aturan lama memberi .lbtx min-width:210px;
   dengan grip 24 + ikon 26 + bilah/angka 105 + jarak 36, totalnya 401px di kolom 363px -> angka
   klik terdorong ke luar panel. Specificity dinaikkan supaya benar-benar bisa menyusut. */
.lbrow .lbtx b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Tanpa ini bilah+angka turun ke baris kedua di kolom 363px, dan baris jadi 74px
   bukan 52px — persis yang hendak dihilangkan. */
.lbrow .lbk{flex:0 0 auto}
@media(max-width:420px){.lbrow .lbk .bar{width:34px}}
.lbrow.lbsel{background:rgba(217,124,96,.12);box-shadow:inset 3px 0 0 var(--acc)}
.lbrow:hover{background:var(--panel2)}
#lbDetail .kv{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;font-size:13px;margin:10px 0 12px}
#lbDetail .kv dt{color:var(--mut,#7b8794)}
#lbDetail .u{font-size:12px;color:var(--green);word-break:break-all;margin-top:3px}
#lbDetail .aksi{display:flex;gap:8px;flex-wrap:wrap}
#lbDetail .aksi button,#lbDetail .aksi select{min-height:44px;flex:1 1 132px}
#lbDetail .aksi button.bahaya{background:var(--red);color:var(--accbtn-fg,#fff);border-color:var(--red);font-weight:700;flex-basis:100%}
#lbDetail .kosong{padding:22px 8px;text-align:center;color:var(--mut,#7b8794);font-size:13px;line-height:1.6}
#lbPrevWrap[data-tutup="1"] #lbPreview{display:none}
@media(max-width:820px){
 /* Di layar sempit panel detail jadi LEMBAR BAWAH — kolom kanan tidak ada di sini. */
 #lbDetail.lbsheet{position:fixed;left:0;right:0;bottom:0;z-index:60;max-height:76vh;overflow:auto;
   border-radius:16px 16px 0 0;box-shadow:0 -14px 40px rgba(0,0,0,.45);margin:0}
 #lbDetail.lbsheet .aksi button{flex-basis:100%}
}
/* garis sisip: penanda TIPIS di antara baris — memberi tahu posisi jatuh sebelum dilepas */
#lbList{position:relative}
.lbline{position:absolute;left:0;right:0;height:2px;background:var(--acc);border-radius:2px;pointer-events:none;
  z-index:25;box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 22%,transparent)}
.lbline::before{content:'';position:absolute;left:-3px;top:-3px;width:8px;height:8px;border-radius:50%;background:var(--acc)}
.lbsecdrop{background:color-mix(in srgb,var(--acc) 14%,transparent);border-radius:8px;
  outline:1px dashed var(--acc);outline-offset:2px}
@media (hover:none){.lbgrip{width:30px;height:34px}} /* sasaran sentuh lebih lega di HP */
/* ===== Panel "Tim terdaftar" — bentuk B: dikelompokkan per DIVISI lalu per PERAN (pilihan Derry 21 Agu)
   Sebelumnya 68 kartu seragam diurut A-Z lintas divisi: mata tak punya pegangan, pil "aktif" terulang
   67x sehingga yang nonaktif justru tenggelam, dan peran panjang membungkus 2 baris bikin grid bergerigi.
   Bentuk B menjawab pertanyaan yang sebenarnya ditanyakan di halaman ini — "divisi ini isinya siapa
   saja, dan siapa yang punya akses lebih" — tanpa menyapu seluruh layar. */
/* ===== Absen Saya — tata ulang "A3" (pilihan Derry 21 Agu) =====
   Masalah lama bukan estetika tapi URUTAN: tombol Absen Masuk duduk di bawah kartu identitas,
   catatan peran keliling, catatan luar kantor, dan kadang catatan kuis — di HP aksi utamanya
   bisa terdorong ke bawah lipatan, padahal orang membuka layar ini sambil berdiri di depan pintu.
   Sekarang: KEADAAN dulu (hero), lalu satu aksi besar, baru penjelasan & riwayat.
   Tiga keadaan dipakai bergantian: belum absen · sedang bertugas · selesai. */
.abhero{text-align:center;padding:20px 16px}
/* Papan data: kepala + petak angka. Tiap fakta punya kotaknya sendiri supaya mata langsung
   tahu ada berapa hal — menggantikan hero rata-tengah yang berbahasa "stopwatch".
   Semua warna dari token, jadi ikut benar di tema terang & skin lain. */
.abpd{background:var(--surface);border:1px solid var(--separator);border-radius:var(--r-card);padding:15px}
.abpdh{display:flex;align-items:center;gap:9px;margin-bottom:13px}
.abpdic{width:28px;height:28px;border-radius:var(--r-icon);background:var(--surface-2);
 border:1px solid var(--separator);display:flex;align-items:center;justify-content:center;
 color:var(--label-3);flex:0 0 auto}
.abpdh h4{margin:0;font-size:15px;font-weight:700;letter-spacing:-.2px}
.abpdst{margin-left:auto;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
 padding:5px 11px;border-radius:var(--r-pill);background:var(--abpd-b);color:var(--abpd-c)}
.abpdg{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.abpdt{background:var(--surface-2);border:1px solid var(--separator);border-radius:var(--r-icon);padding:11px 12px}
.abpdt.abpdw{grid-column:1/-1}
.abpdk{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--label-3)}
.abpdv{font-size:22px;font-weight:800;letter-spacing:-.6px;font-variant-numeric:tabular-nums;margin-top:3px}
.abpdv.abpds{font-size:15px;font-weight:700;letter-spacing:0}
.abpdnu{margin-top:11px;border-left:3px solid var(--red);background:var(--red-soft);
 border-radius:var(--r-icon);padding:10px 12px;font-size:13px;font-weight:700;color:var(--red)}
.abpdno{margin-top:11px;font-size:13px;color:var(--mut)}
/* Pemilih tema Alternatif C — pratinjau besar + daftar. */
.thwrap{display:flex;gap:18px;align-items:flex-start;margin-top:4px}
.thbig{flex:1;min-width:0;border-radius:var(--r-card,16px);overflow:hidden;border:1px solid var(--separator)}
.thside{width:246px;flex:0 0 auto}
.thopt2{display:flex;align-items:center;gap:11px;width:100%;min-height:40px;padding:8px 10px;
 border:0;background:none;border-radius:9px;cursor:pointer;font:inherit;color:var(--label);
 font-size:14px;font-weight:500;text-align:left}
.thopt2:hover{background:var(--surface-2)}
.thopt2.on{background:var(--surface-2);box-shadow:inset 2px 0 0 var(--acc)}
.thopt2 .nm{flex:1;min-width:0}
.thopt2 .thck{color:var(--acc);display:inline-flex}
.thpita{display:inline-flex;width:34px;height:19px;border-radius:5px;overflow:hidden;flex:0 0 auto;
 border:1px solid var(--separator)}
.thpita i{flex:1}
.thbignm{font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
 color:var(--label-3);margin:0 0 8px}
@media(max-width:860px){.thwrap{flex-direction:column}.thside{width:100%}
 .thside .thopt2{min-height:44px}}
.abhero .jam{font-size:44px;font-weight:800;letter-spacing:-2px;line-height:1.05;font-variant-numeric:tabular-nums;margin:9px 0 3px}
.abhero .ket{font-size:13px;color:var(--mut)}
.abhero .ket b{color:var(--txt)}
.abhero--tugas{border-color:color-mix(in srgb,var(--green,#4ade80) 34%,var(--line))}
.abhero--sel{border-color:color-mix(in srgb,var(--green,#4ade80) 22%,var(--line))}
.abwk{display:flex;gap:6px;margin-top:9px}
.abwk>div{flex:1;text-align:center;min-width:0}
.abwk i{display:flex;align-items:center;justify-content:center;height:36px;border-radius:9px;margin-bottom:4px;
  font-style:normal;font-size:13px;font-weight:800}
.abwk .h{background:color-mix(in srgb,var(--green,#4ade80) 16%,transparent);color:var(--green,#4ade80)}
.abwk .t{background:color-mix(in srgb,var(--acc) 18%,transparent);color:var(--acc)}
.abwk .n{background:var(--surface-2);color:var(--mut)}
.abwk .f{background:var(--surface-2);color:var(--mut);opacity:.45}
.abwk .k{outline:2px solid var(--acc);outline-offset:1px}
.abwk span{font-size:12px;color:var(--mut)}
.abdet{display:grid;grid-template-columns:auto 1fr;gap:7px 12px;font-size:13px;align-items:baseline}
.abdet .k{color:var(--mut);white-space:nowrap}
/* ===== Kelola SDM — tata dua kolom "S2" (pilihan Derry 21 Agu) =====
   Dulu panel "Kontrak perlu perhatian" (8 baris, 5 kolom) memakan SELURUH layar pertama sehingga
   bilah tab & Daftar Karyawan — isi sebenarnya halaman ini, 179 orang — baru mulai di bawah lipatan.
   Bobotnya terbalik: peringatan 8 baris tampil penuh, daftar 179 orang tersembunyi.
   Sekarang peringatan duduk di kolom kanan yang sempit: ia tak pernah bisa mendorong isi utama ke
   bawah berapa pun jumlahnya, dan kolom itu jadi tempat tetap untuk peringatan HR lain nanti
   (probation berakhir, SP aktif, BPJS belum lengkap). Di layar sempit ia kembali ke atas. */
/* ===== Panel Ujian di peranti (P2 siap -> E3 papan -> mode E2 fokus; pilihan Derry 21 Agu) =====
   Sebelumnya penilaian juri hidup di dalam MODAL: sasaran ketuk kecil, isi panjang men-scroll di
   dalam kotak, dan Total Time diketik tangan sesudah ujian selesai — artinya angka penalti berasal
   dari INGATAN, bukan pengukuran. Panel ini layar penuh, punya timer yang benar-benar berjalan,
   dan menyimpan draf tiap ketukan supaya tablet mati di menit ke-8 tidak menghapus penilaian. */
.espov{position:fixed;inset:0;z-index:100000;background:var(--bg,#0c1017);display:flex;flex-direction:column;overflow:hidden}
.esphd{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--separator);flex:0 0 auto}
.esphd b{font-size:17px;font-weight:780}
.esphd .tim{margin-left:auto;font-variant-numeric:tabular-nums;font-size:24px;font-weight:800;letter-spacing:-1px}
.esphd .tim.ot{color:var(--red)}
.espbody{flex:1;overflow:auto;-webkit-overflow-scrolling:touch}
.espwrap{display:grid;grid-template-columns:minmax(0,1fr) 330px;min-height:100%}
.espmain{padding:12px 14px 24px}
.espside{background:var(--panel2);border-left:1px solid var(--separator);padding:14px;display:flex;flex-direction:column;gap:11px}
.espgrp{font-size:12px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--mut);margin:15px 0 7px;display:flex;gap:8px;align-items:center}
.espgrp .c{background:var(--surface-2);border-radius:99px;padding:1px 8px;font-size:12px}
.espit{display:flex;align-items:center;gap:12px;min-height:52px;padding:9px 13px;background:var(--panel2);
  border:1px solid var(--line);border-radius:13px;margin-bottom:7px;font-size:14.5px;line-height:1.3;cursor:pointer;
  width:100%;text-align:left;color:inherit;font-family:inherit;-webkit-appearance:none;appearance:none}
.espit:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.espit.on{background:color-mix(in srgb,var(--green,#4ade80) 10%,transparent);border-color:color-mix(in srgb,var(--green,#4ade80) 40%,transparent)}
/* Mode 'semua Ya': makna warna terbalik — merah = penguji menandai GAGAL. */
.espit.no{background:color-mix(in srgb,var(--red) 13%,transparent);border-color:var(--red)}
.espit.no .espbx{background:var(--red);border-color:var(--red);color:#fff}
.espit.no>span:last-child{color:var(--red);font-weight:600}
.espstep{display:flex;align-items:center;gap:0;margin:2px 0 14px}
.espstep>button{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:0;font:inherit;color:inherit;padding:4px 0;cursor:pointer}
.espstep .b{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:var(--mut)}
.espstep .cur .b{background:var(--acc);border-color:var(--acc);color:var(--accbtn-fg,#141414)}
.espstep .ok .b{background:color-mix(in srgb,var(--green,#4ade80) 22%,transparent);border-color:transparent;color:var(--green,#4ade80)}
.espstep .n{font-size:12px;color:var(--mut)}
.espbx{width:30px;height:30px;border-radius:9px;border:2px solid var(--line);flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800}
.espit.on .espbx{background:var(--green,#4ade80);border-color:var(--green,#4ade80);color:#0c1017}
.esprow{display:flex;justify-content:space-between;gap:10px;font-size:13.5px;padding:7px 0;border-top:1px solid var(--separator)}
.esprow:first-of-type{border-top:0}
.espbig{font-size:42px;font-weight:800;letter-spacing:-2px;font-variant-numeric:tabular-nums;line-height:1}
.espnum{width:74px;text-align:center;font-size:19px;font-weight:800}
.espsv{font-size:12px;color:var(--mut);text-align:center}
.espfoc{padding:26px 20px;display:flex;flex-direction:column;min-height:100%}
.espfoc .q{font-size:28px;font-weight:750;line-height:1.22;letter-spacing:-.5px;margin:8px 0 26px}
.espdot{display:flex;gap:5px;justify-content:center;flex-wrap:wrap;margin-top:22px}
.espdot i{width:9px;height:9px;border-radius:50%;background:var(--surface-2);display:block}
.espdot i.on{background:var(--green,#4ade80)}.espdot i.cur{background:var(--acc)}
@media (max-width:900px){.espwrap{grid-template-columns:1fr}.espside{border-left:0;border-top:1px solid var(--separator);position:static}}
.hrgrid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;align-items:start}
.hrside{position:sticky;top:12px;display:flex;flex-direction:column;gap:12px}
.hrwarn h3{margin:0}
.hrwgrp{padding:9px 0;border-top:1px solid var(--separator)}
.hrwgrp:first-of-type{border-top:0}
.hrwgrp .d{display:flex;align-items:center;gap:8px;font-weight:750;font-size:13px}
.hrwgrp .d .n{flex:1;font-weight:400;font-size:12px;color:var(--mut)}
.hrwgrp .nm{font-size:12.5px;color:var(--label);margin-top:3px;line-height:1.5}
@media (max-width:1100px){.hrgrid{grid-template-columns:1fr}.hrside{position:static;order:-1}}
.tmgrp{margin-bottom:16px}
.tmgh{display:flex;align-items:center;gap:9px;font-size:13.5px;font-weight:750;
  padding-bottom:8px;border-bottom:1px solid var(--separator);margin-bottom:10px}
.tmgh i{width:9px;height:9px;border-radius:3px;display:block;flex:0 0 auto}
.tmgh em{font-style:normal;margin-left:auto;font-size:12px;font-weight:600;color:var(--mut)}
.tmrow{display:flex;gap:14px;align-items:flex-start;padding:4px 0 9px}
.tmrl{flex:0 0 210px;font-size:12.5px;color:var(--mut);padding-top:4px;line-height:1.3}
.tmct{display:inline-block;background:var(--surface-2);color:var(--label);border-radius:999px;
  padding:1px 7px;font-size:12px;font-weight:700;margin-left:5px;white-space:nowrap}
.tmps{display:flex;flex-wrap:wrap;gap:7px;flex:1;min-width:0}
.tmp{display:inline-flex;align-items:center;gap:7px;min-height:28px;
  background:var(--panel2);border:1px solid var(--line);border-radius:999px;
  padding:2px 11px 2px 3px;font-size:12.5px;max-width:100%}
.tmp.klik{cursor:pointer}
.tmp.klik:hover{border-color:var(--acc)}
.tmp>span.nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tmav{width:22px;height:22px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:750;color:#11161e;flex:0 0 auto}
.tmb{font-size:12px;padding:1px 6px;border-radius:999px;background:var(--surface-2);color:var(--label-2);
  font-weight:700;white-space:nowrap;flex:0 0 auto}
.tmb.acc{background:color-mix(in srgb,var(--acc) 18%,transparent);color:var(--acc)}
.tmb.bad{background:color-mix(in srgb,var(--red) 18%,transparent);color:var(--red)}
/* tombol atur-akses per orang: ikon redup supaya 68 chip tak berubah jadi 68 pil oranye;
   menyala begitu chip-nya disentuh mouse. Chip tetap punya title utk pembaca layar & sentuh. */
.tmg{display:inline-flex;align-items:center;color:var(--mut);opacity:.5;flex:0 0 auto;transition:opacity .12s,color .12s}
.tmp.klik:hover .tmg{opacity:1;color:var(--acc)}
@media (max-width:820px){.tmrow{display:block}.tmrl{margin-bottom:6px;padding-top:0}}
/* Tumpang tindih di Kelola Link (lapor Derry 16 Agu) — akarnya BUKAN lebar layar.
   Aturan sempit sebelumnya digantung pada @media(max-width:640px), yaitu lebar LAYAR. Tetapi yang
   sesak di sini adalah lebar PANEL: kolom Preview duduk di sebelahnya, jadi di layar 1440px pun
   panel Kelola Link bisa cuma ~640px dan aturan mobile tak pernah menyala.
   Diukur pada panel 700/640/480px: URL meluber keluar kolomnya, lalu menabrak tombol, dan judul
   panjang terpelintir sampai 6 baris (tinggi baris 158px).
   Perbaikannya membuat baris tanggap pada lebarnya sendiri: kolom teks punya basis 260px, jadi
   begitu ruang menyempit kelompok tombol TURUN ke baris sendiri — tanpa menunggu media query. */
.lbrow .lbtx{flex:1 1 260px;min-width:210px}
/* Kelompok tombol TIDAK boleh pecah sendiri-sendiri: saat ia turun ke baris bawah, tombol Hapus
   sempat terpelanting ke baris ketiga (terlihat saat dipotret). Di lebar layar besar ia dijaga utuh;
   aturan <=640px di bawah tetap mengizinkan membungkus, karena di HP memang harus. */
.lbrow .lbact{flex-wrap:nowrap}
/* Catatan kenapa inline style dibuang dari markup: div ini semula ber-`style="flex:1;min-width:0"`,
   dan gaya inline MENGALAHKAN aturan kelas — jadi percobaan pertama memperbaiki lewat CSS saja
   sama sekali tidak berpengaruh (angka ukur identik sebelum/sesudah). min-width:210px inilah yang
   memaksa kelompok tombol turun ke baris sendiri saat ruang kurang, bukan menjepit kolom teks. */
.lbrow .lbtx>b{overflow-wrap:anywhere}
.lbrow .lbu{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Kendali baris link (panah urutan, pindah section, Ikon/Edit/Hapus). Dikelompokkan supaya di layar
   sempit ia TURUN ke baris sendiri — diuji 375px: tanpa ini judul link terpelintir jadi 5 baris dan
   tombolnya keluar layar (jebakan yang sama pernah kena di halaman Absensi). */
.lbact{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end}
/* spesifisitas sengaja dinaikkan: aturan anti-overflow `.panel select.f{flex:1 1 160px;max-width:100%}`
   mengalahkan `.lbact select` biasa, sehingga dropdown melebar ~180px & menjepit judul link (terlihat saat uji visual) */
.lbrow .lbact select.f{flex:0 1 96px;max-width:96px;font-size:12px;padding:2px 4px}
.lbact .ico{padding:3px 8px}   /* tombol ikon-saja: hemat lebar supaya judul link tak terjepit */
@media (max-width:640px){.lbrow{flex-wrap:wrap}
 .lbrow .lbact{width:100%;min-width:0;margin-top:6px;justify-content:flex-start;flex-wrap:wrap}
 .lbact>*{flex:0 0 auto;min-width:0}
 .lbrow .lbact select.f{flex:1 1 100%;max-width:none;order:-1}   /* dropdown ambil satu baris penuh, sisanya bebas turun */
}
.lbrow .lbu{font-size:12px}
::selection{background:rgba(217,124,96,.32)}
/* #90 dup dibuang */::-webkit-scrollbar-track{background:transparent}
.num,td.num,th.num,.kpi .val{font-variant-numeric:tabular-nums}
.note,.sub-t{max-width:80ch}
/* #97 (temuan Theola 30 Jul): clamp lebar-baca 80ch pada `.muted.small` menjepit 82 KONTAINER RENDER
   (opsWrap, sgBox, sosWrap, inboxBody, jwWrap, …) — papan kanban 5 kolom (1.290px) dipaksa hidup di 703px,
   jadi kolom Done & Reject tersembunyi di balik scroll padahal layar masih kosong di kanan.
   Daftar pengecualian lama (:has(table)/(.scrollx)/(.panel)/(.grid)) tidak menangkap papan flex biasa.
   Dibalik jadi SATU aturan: clamp HANYA kalau isinya teks murni (tanpa satu pun elemen anak).
   Placeholder "Memuat…" & teks bantuan tetap 80ch; begitu diisi struktur apa pun, kontainer bebas melebar. */
.muted.small:not(:has(*)){max-width:80ch}
/* Polish tabel (Derry 27 Jun, expert UI): umpan-balik hover utk baris tabel yang bisa diklik (afordans). */
#pagewrap .panel table tbody tr[onclick]{transition:background-color .12s ease}
#pagewrap .panel table tbody tr[onclick]:hover{background:var(--surface-2,#1E222A)!important}
#pagewrap .panel .tmsc{max-height:72vh;overflow:auto}
#pagewrap .panel .tmsc table thead th{position:sticky;top:0;z-index:3;background:var(--surface,#171A20);box-shadow:inset 0 -1px 0 var(--line)}
a{color:var(--acc2);text-decoration:none}
#app{display:flex;min-height:100vh}
#side{width:230px;background:var(--panel);border-right:1px solid var(--line);position:fixed;height:100vh;overflow-y:auto;padding:18px 0;z-index:10}
#side .brand{padding:0 20px 16px;border-bottom:1px solid var(--line);margin-bottom:10px}
#side .brand h1{font-size:16px;letter-spacing:.5px}#side .brand span{font-size:12px;color:var(--mut)}
.navitem{display:flex;align-items:center;gap:11px;padding:9px 20px 9px 26px;cursor:pointer;color:var(--mut);font-weight:500;font-size:13px;border-left:3px solid transparent;transition:.15s}
.navitem:hover{background:var(--panel2);color:var(--txt)}
.navitem.active{background:var(--accent-soft);color:var(--on-soft);border-left-color:var(--acc);border-left-width:3px}
h2.title,.panel h3{scroll-margin-top:70px}
.navitem .ic{width:18px;text-align:center}
#side .sub{font-size:12px;text-transform:uppercase;letter-spacing:var(--ls-caps,.14em);color:#5b6473;padding:16px 20px 7px;margin-top:8px;border-top:1px solid var(--line);cursor:pointer;user-select:none;display:flex;justify-content:space-between;align-items:center;font-weight:700}
#side .sub:hover{color:var(--acc2)}.navchev{font-size:12px;opacity:.5;transition:.15s}#side .navitem.navhidden{display:none!important}
#side .navitem.navpin{border-top:1px solid var(--line,rgba(255,255,255,.1));margin-top:8px;color:var(--acc2)}
#side .navitem.navpin .ic{filter:saturate(1.3)}
#side .sub:first-of-type{border-top:none;margin-top:0}
#side .sub:hover{color:#8a93a5}
#side .sub .chev{transition:transform .2s;font-size:12px}
#side .sub.collapsed .chev{transform:rotate(-90deg)}
#side .subgrp{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#5b6473;opacity:.85;padding:9px 20px 3px;font-weight:700}
#side .subgrp.navhidden{display:none!important}
/* === TABEL JADI KARTU DI HP (Alternatif A, Derry 20 Agu 2026) ===
   Bentuknya diurus CSS; JS hanya menempel data-l. Hanya berlaku pada tabel yang
   sudah ditandai data-kartu="1" oleh _tabelKartu() — tabel lain tak tersentuh.
   20 Sep 2026 (Derry: "upgrade juga tampilan di ipad"): ambang 820→640px. Di iPad 768px kartu
   JUSTRU merusak — diukur di harness: grid jadwal 32 kolom jadi 28.834px di dalam jendela 717px,
   dan matriks event (.ecmtx) 3.150px dengan 30 tabrakan nyata. Tablet punya ruang untuk tabel
   sungguhan; kartu adalah jawaban untuk layar SEMPIT, bukan untuk layar sentuh. */
@media(max-width:640px){
 table[data-kartu="1"]{display:block;width:100%;max-width:100%;overflow:visible;border-collapse:separate;border-spacing:0;table-layout:auto}
 table[data-kartu="1"] thead{display:none}
 table[data-kartu="1"] tbody{display:block}
 table[data-kartu="1"] tbody tr{display:block;box-sizing:border-box;width:auto;background:var(--surface-2,#2F251C);border:1px solid var(--separator,rgba(230,225,210,.15));border-radius:12px;padding:11px 12px;margin:0 0 9px}
 table[data-kartu="1"] tbody tr:last-child{margin-bottom:0}
 table[data-kartu="1"] tbody td{display:flex;gap:12px;justify-content:space-between;align-items:baseline;border:0!important;padding:3px 0!important;white-space:normal!important;max-width:none!important;min-width:0!important;text-align:left!important;position:static!important;overflow-wrap:anywhere}
 /* 21 Agu (cek UI area ujian, kasus Tyas di HP): overflow-wrap:anywhere di atas memecah ISI PENDEK
    di tengah kata — nilai ujian "76" tampil jadi 7 lalu 6, dan nama juri jatuh SATU HURUF per baris.
    Angka/tebalan dan teks berlabel .nobrk hanya boleh berpindah baris di SPASI. */
 table[data-kartu="1"] tbody td>b,table[data-kartu="1"] tbody td .nobrk{overflow-wrap:normal;word-break:normal}
 table[data-kartu="1"] tbody td .nobrk{text-align:left}
 /* Nama juri (2-3 nama panjang) tak cukup ruang di kartu HP dan tampil terpotong; disembunyikan di
    layar sempit — isinya tetap terbaca sebagai tooltip pada angka, dan utuh di layar lebar. */
 table[data-kartu="1"] tbody td .exjuri{display:none}
 table[data-kartu="1"] tbody td[data-l]::before{content:attr(data-l);flex:0 0 auto;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--label-3,#988C7D);white-space:nowrap;padding-top:2px}
 table[data-kartu="1"] tbody td:empty{display:none}
 table[data-kartu="1"] tbody td.kartu-judul{display:block;font-size:14px;font-weight:600;padding:0 0 7px!important;margin:0 0 6px;border-bottom:1px solid var(--separator,rgba(230,225,210,.15))!important}
 table[data-kartu="1"] tbody td.kartu-judul::before{display:none}
 table[data-kartu="1"] tbody td>.flex{justify-content:flex-end!important;flex-wrap:wrap}
}
#side .navitem .cnt{margin-left:auto;font-size:12px;opacity:.55;font-variant-numeric:tabular-nums}
#side .navcari{display:flex;align-items:center;gap:8px;margin:8px 12px 4px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;cursor:pointer;font-size:12.5px;opacity:.8}
#side .navcari:hover{opacity:1;background:var(--accent-soft)}
#side .navcari .kbd{margin-left:auto;font-size:12px;opacity:.6;border:1px solid var(--line);border-radius:4px;padding:1px 5px}
#main{margin-left:230px;flex:1;max-width:2200px}#side,#main{transition:transform .22s ease,margin-left .22s ease}body.sidehide #side{transform:translateX(-100%)}body.sidehide #main{margin-left:0}#sideToggle{position:fixed;top:11px;left:190px;z-index:60;width:30px;height:30px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--label);cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:.6;padding:0}#sideToggle:hover{opacity:1}body.sidehide #sideToggle{left:11px}
#rangebar{position:sticky;top:0;background:var(--rangebg);backdrop-filter:blur(14px) saturate(170%);-webkit-backdrop-filter:blur(14px) saturate(170%);transform:translateZ(0);border-bottom:1px solid var(--line);padding:calc(11px + env(safe-area-inset-top)) 30px 11px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;z-index:9}
@media(display-mode:standalone){#rangebar{padding-top:calc(10px + env(safe-area-inset-top))}#mtog{top:calc(10px + env(safe-area-inset-top))!important}#side .brand{padding-top:calc(14px + env(safe-area-inset-top))}}
#rangebar .lbl{font-size:12px;text-transform:uppercase;letter-spacing:var(--ls-caps,.14em);color:var(--mut)}
#rangebar input[type=date],#rangebar select{background:var(--panel2);color:var(--txt);border:1px solid var(--separator-strong,var(--line));border-radius:var(--r-input,10px);padding:6px 10px;font-size:13px}
.preset{display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1;padding:8px 14px;border:1px solid var(--separator);border-radius:var(--r-btn);cursor:pointer;color:var(--label-2);font-size:13px;background:var(--surface);transition:transform var(--dur-press) var(--ease-out),background-color var(--dur-state),border-color var(--dur-state),color var(--dur-state);font-weight:600}
.icobtn{display:inline-flex;align-items:center;justify-content:center;padding:5px;min-width:30px;min-height:30px;border:1px solid var(--separator);border-radius:8px;cursor:pointer;color:var(--label-2);background:var(--surface)}.icobtn:hover{color:var(--label);border-color:var(--label-3)}td.row-act{white-space:nowrap}
/* ===== Topbar gaya Command Center (segmented range + search pill + ikon aksi) ===== */
.rb-cal{display:inline-flex;align-items:center;justify-content:center;color:var(--label-3,var(--mut));flex:0 0 auto}
.rb-cal svg{width:16px;height:16px}
#presets{display:inline-flex;align-items:center;gap:8px}
.rb-seg{display:inline-flex;align-items:center;gap:2px;background:var(--surface-2,var(--panel2,#1E222A));border:1px solid var(--line,rgba(255,255,255,.1));border-radius:11px;padding:3px}
.rb-seg .preset{border:0!important;background:transparent!important;border-radius:8px!important;padding:6px 13px!important;font-size:13px;font-weight:700;color:var(--label-2,var(--mut,#9AA1AC));box-shadow:none!important}
.rb-seg .preset:hover{background:rgba(127,127,127,.14)!important;color:var(--label,var(--txt,#F2F4F6))}
.rb-seg .preset.active{background:var(--surface,var(--panel,#171A20))!important;color:var(--label,var(--txt,#F2F4F6))!important;box-shadow:0 1px 2px rgba(0,0,0,.22)!important}
#gswrap{margin-left:auto;display:inline-flex;align-items:center;position:relative}
#gswrap .gs-ic{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--label-3,var(--mut,#9AA1AC));pointer-events:none}
#gswrap .gs-kbd{position:absolute;right:11px;top:50%;transform:translateY(-50%);font-size:12px;font-weight:700;color:var(--label-3,var(--mut,#9AA1AC));pointer-events:none}
#gsearch{min-width:240px;border-radius:var(--r-input,10px)!important;padding:9px 38px 9px 35px!important;background:var(--surface-2,var(--panel2,#1E222A))!important}
#hdrActions .hdrbtn{width:40px;height:40px;border-radius:11px;border:1px solid var(--line,rgba(255,255,255,.1));background:var(--surface-2,var(--panel2,#1E222A));color:var(--label-2,var(--mut,#9AA1AC));display:inline-flex;align-items:center;justify-content:center;position:relative;padding:0;cursor:pointer}
#hdrActions .hdrbtn:hover{color:var(--label,var(--txt,#F2F4F6));border-color:var(--accent,var(--acc,#D97C60))}
#hdrActions .hdrbtn svg{width:18px;height:18px}
#hdrActions .hdrbadge{position:absolute;top:-4px;right:-4px;min-width:17px;height:17px;padding:0 4px;border-radius:99px;background:var(--red,#e5484d);color:#fff;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;border:0}
.preset:hover{border-color:var(--accent);color:var(--label)}
.preset.active{background:var(--accent);color:var(--on-accent);border-color:transparent;font-weight:700}
.preset.pri{background:var(--accent);color:#fff;border-color:transparent;font-weight:700}
/* Label kolom kecil di depan sebaris kontrol (mis. "Rentang" di modal Quiz). Dulu dideklarasikan
   di dalam <style> milik bar saring Audisi, jadi ikut hilang saat bar itu diganti — padahal
   pemakainya ada di halaman lain. Tempatnya global. */
.aulbl{flex:0 0 72px;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut)}
/* ── TOMBOL SHORTLIST (bintang) ────────────────────────────────────────────────────────────
   Derry 21 Sep 2026: "shortlist tolong warna nya beda sendiri, misal kuning, biar ke cek".
   Tombol ini penanda MILIK DERRY (bintang yang ia pasang sendiri), jadi diberi warna tersendiri
   saat DIAM — bukan hanya saat menyala seperti dulu.

   KUNINGNYA DI ISIAN, BUKAN DI TEKS. Dua percobaan "teks kuning" gagal dan keduanya ketahuan
   hanya lewat pengukuran di harness (12 pasangan tema×skin, latar EFEKTIF karena panel HUD
   transparan):
   (1) teks = --st-yellow apa adanya -> di bawah ambang 4,5 pada terang/klasik (4,46),
       terang/lacabra (3,19), terang/riso (3,19): nilai skin itu dipilih untuk chip berlatar
       tint, bukan untuk teks di atas panel;
   (2) teks = campuran kuning×--txt -> untuk lolos kontras rasionya harus turun ke 32%, dan di
       situ warnanya sudah jadi krem pucat — lolos angka, gagal maksud ("biar ke cek").
   Maka kuning dipindah ke LATAR dengan tinta gelap tetap: pasangan warnanya tidak bergantung
   tema sama sekali, jadi kontrasnya terjamin oleh konstruksi (±8,8) dan kuningnya kelihatan di
   skin mana pun. Keadaan menyala dibedakan lewat kepekatan + bintang terisi + cincin, bukan
   lewat warna saja.

   KENAPA BERAWALAN :root: skin memasang `html[data-skin="anime"] .preset{color:…}` yang
   kekhususannya (0,2,1) MENGALAHKAN `.preset.auStar` (0,2,0) — terukur: di Sakura tombolnya
   merah muda persis seperti chip biasa, alias tak beda sama sekali. `:root .preset.auStar`
   = (0,3,0) dan menang tanpa perlu !important. Untuk LATAR, skin La Cabra & Glass sengaja
   mengosongkan latar semua `.preset` kecuali yang ber-`.inkbg` (kait resmi mereka, sudah dipakai
   8x di app) — jadi tombol ini ikut memakai `.inkbg`, bukan melawan dengan !important. */
:root{--star-hue:#F2C94C;--star-ink:#3B2B00}
:root .preset.auStar{background:color-mix(in srgb,var(--star-hue,#F2C94C) 72%,#fff);border-color:color-mix(in srgb,var(--star-hue,#F2C94C) 85%,#000);color:var(--star-ink,#3B2B00);font-weight:700}
:root .preset.auStar:hover{background:color-mix(in srgb,var(--star-hue,#F2C94C) 90%,#fff)}
:root .preset.auStar .muted{color:inherit;opacity:.75}
:root .preset.auStar b{color:inherit}
:root .preset.auStarOn{background:var(--star-hue,#F2C94C);border-color:var(--star-hue,#F2C94C);color:var(--star-ink,#3B2B00);font-weight:800;box-shadow:0 0 0 2px color-mix(in srgb,var(--star-hue,#F2C94C) 38%,transparent)}
:root .preset.auStarOn svg{fill:currentColor}
/* Sistem tombol B (Derry 5 Jul 2026): radius via --r-btn + hierarki 6 peran + hover-lift primer */
.preset.pri:hover,.accbtn:hover{transform:translateY(-1px)}
.preset.sec{background:color-mix(in srgb,var(--acc) 15%,transparent)!important;color:var(--acc)!important;border-color:color-mix(in srgb,var(--acc) 45%,transparent)!important}
.preset.sec:hover{background:color-mix(in srgb,var(--acc) 24%,transparent)!important;border-color:var(--acc)!important}
.preset.quiet{background:transparent!important;border-color:transparent!important;color:var(--mut)!important}
.preset.quiet:hover{background:var(--surface)!important;color:var(--label)!important}
.preset.danger{background:color-mix(in srgb,var(--red,#e0685f) 14%,transparent)!important;color:var(--red,#e0685f)!important;border-color:color-mix(in srgb,var(--red,#e0685f) 45%,transparent)!important}
.preset.danger:hover{background:var(--red,#e0685f)!important;color:#fff!important;border-color:transparent!important}
@media(prefers-reduced-motion:reduce){.preset.pri:hover,.accbtn:hover{transform:none}}
.preset.pri:hover{filter:brightness(1.06);color:var(--on-accent)}
.linknm{color:var(--acc2);cursor:pointer;border-bottom:1px dashed var(--acc2)}
.linknm:hover{color:var(--acc)}
#rangeinfo{margin-left:auto;font-size:12px;color:var(--acc2);font-weight:600}
#pagewrap{--gutter:30px;padding:24px 30px 70px}
.page{animation:fade .25s}@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1}}
h2.title{font-size:26px;font-weight:var(--fw-display,800);letter-spacing:var(--ls-display-tight,-.02em);margin-bottom:8px}.sub-t{color:var(--label-2);font-size:14px;line-height:1.5;margin-bottom:22px;max-width:78ch}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(172px,1fr));gap:16px;margin-bottom:24px}
.kpi{background:var(--surface);border:1px solid var(--separator);border-radius:var(--r-card);padding:16px 18px;box-shadow:var(--sh-sm);transition:transform .25s var(--ease-out),border-color var(--dur-state),background-color var(--dur-state)}
.kpi:hover{transform:translateY(-2px)}
.kpi .lbl{font-size:12px;color:var(--label-3);text-transform:uppercase;letter-spacing:var(--ls-caps,.14em);font-weight:600}
.kpi .val{font-size:22px;font-weight:800;margin-top:7px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.kpi .delta{font-size:12px;margin-top:5px}
.up{color:var(--green)}.down{color:var(--red)}
.grid{display:grid;gap:20px;margin-bottom:22px}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.panel{background:var(--surface);border:1px solid var(--separator);border-radius:var(--r-card);padding:20px;box-shadow:var(--sh-sm);margin-bottom:18px;transition:background-color var(--dur-state) var(--ease-std),border-color var(--dur-state)}
.grid .panel{margin-bottom:0}
/* Semua tabel responsif: muat layar/tab, scroll horizontal di dalam (bukan meluber ke halaman). Header & body tetap sejajar. */
#main table{display:block;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
/* list ringan: 1 kartu luar, baris dipisah garis halus (bukan kotak bertumpuk) */
.listcard{padding:2px 16px}
.litem{padding:14px 0;border-bottom:1px solid var(--line);line-height:1.5}
.litem:first-child{padding-top:8px}
.litem:last-child{border-bottom:none;padding-bottom:8px}
/* #70: spacing scale token + kartu list kombinasi panel+litem WAJIB punya padding horizontal (regresi: judul mepet tepi & teks kepotong di Filter Coffee Releases) */
:root{--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px}
/* #14 (Theola): sel tabel nowrap teks-saja -> kepotong jadi ellipsis, bukan terpotong mentah. Sel ber-tombol/link/ikon DIKECUALIKAN supaya aksi tak terpotong. */
td[style*="nowrap"]:not(:has(button)):not(:has(a)):not(:has(input)):not(:has(select)):not(:has(svg)):not(:has(img)),
th[style*="nowrap"]:not(:has(button)):not(:has(a)){overflow:hidden;text-overflow:ellipsis;max-width:36ch}

.panel.litem{padding:14px var(--sp-4)}
/* #70: guard anti-skin — skin hanya boleh sentuh warna/font/radius/shadow, bukan padding/display komponen */
html[data-skin] .panel.litem{padding:14px var(--sp-4)}
html[data-skin] .preset{display:inline-flex;align-items:center;justify-content:center}
/* #74: kunci scroll horizontal — view selalu full; konten lebar scroll di kontainernya sendiri (clip aman utk sticky, beda dgn hidden) */
html,body{overflow-x:clip}
#main,#pagewrap{max-width:100%;overflow-x:clip}
#pagewrap .grid>*,#pagewrap .flex>*{min-width:0}
/* #74: afordans — kontainer scroll punya scrollbar tipis yang terlihat, biar tak dikira kepotong */
/* #90: dipindah ke blok webkit tunggal */
.scrollx::-webkit-scrollbar{height:6px}
.scrollx::-webkit-scrollbar-thumb{background:var(--separator-strong,var(--line));border-radius:3px}
.scrollx::-webkit-scrollbar-track{background:transparent}
.secthead{margin:26px 0 12px;padding:0 2px;background:none;border-left:0;font-size:16px;font-weight:700;letter-spacing:-.01em;color:var(--label);text-transform:none}
.secthead .sh-sub{font-weight:500;text-transform:none;color:var(--label-2);font-size:13px;margin-left:8px}
.jadtab td,.jadtab th{padding:3px 4px;text-align:center;border:1px solid var(--line)}
.jadtab .jadname{position:sticky;left:0;background:var(--panel2);text-align:left;white-space:nowrap;font-size:11px;z-index:2;min-width:120px}
.jadtab thead th{position:sticky;top:0;background:var(--panel2);z-index:1}
.jadtab thead .jadname{z-index:3}
.cctab{width:100%;table-layout:fixed;border-collapse:collapse}
/* #162 LANJUTAN (14 Sep): perbaikan pertama mencabut :not(.cctab) dari window-fit, TAPI aturan itu
   hidup di dalam @media(min-width:1025px); sedangkan yang memaksa display:table di bawahnya hanya
   berlaku <=640px. Akibatnya pita 641-1024px tak dapat display:table dari mana pun -> #main
   table{display:block} yang global menang lagi & table-layout:fixed mati, jadi kalendernya menyusut
   persis seperti keluhan awal. Pita itu bukan pinggiran: iPad lanskap (1024), laptop 1366 dgn zoom
   125-150%, dan jendela yang tak dimaksimalkan jatuh ke sana. Hanya .cctab yang disebut -
   .jadtab & .usertab tetap mengatur lebarnya sendiri (kolom sticky). */
@media(min-width:641px) and (max-width:1024px){#pagewrap .panel table.cctab{display:table;width:100%}}
/* #162 (Theo 14 Sep, "kolom calendar kecil2 ga sesuai margin background"): aturan global
   `#main table{display:block}` berlaku sejak #148/#152, dan pada elemen display:block
   `table-layout:fixed` MATI TOTAL — 7 kolom tak lagi dipaksa 1/7 lebar, tabel anonim di dalamnya
   menciut mengikuti isi. Aturan WINDOW-FIT yang menyembuhkan gejala itu justru mengecualikan
   kalender, jadi ia satu-satunya yang sakit. Dikembalikan di SEMUA lebar, bukan hanya >=1025px
   seperti window-fit: celah 641-1024px juga terkena dan tak tertutup kalau pengecualian di
   window-fit saja yang dicabut. Selektor di bawah menang karena id+kelas (1,1,1) mengalahkan
   id+elemen (1,0,1). Kena DUA halaman: Content Planner & Creative Production.
   Tinggi sel SENGAJA tidak disentuh di sini — itu butir 1a #159. */
#main table.cctab,#pagewrap .panel table.cctab{display:table;width:100%;table-layout:fixed}
.cctab th{padding:4px;font-size:12px;color:var(--mut);text-align:center}
.cctab td{border:1px solid var(--line);vertical-align:top;height:82px;padding:3px}
/* ═══ BAR BULAN KALENDER — satu bentuk untuk SEMUA kalender (Derry 20 Sep 2026, pilihan C "bar kerja") ═══
   Audit 20 Sep: 10 kalender memakai 6 dialek tombol berbeda untuk gerakan yang persis sama
   ("‹ Prev"/"Next ›" Inggris, "‹ Bulan lalu", "‹ Juli", ikon polos, ‹ › bundar), 8 di antaranya
   tanpa jalan pulang ke bulan berjalan, dan NOL yang bisa dijalankan dengan panah papan ketik.
   Bentuk C dipilih karena beberapa kalender punya kendali tambahan (basis Prod/Deadline/Post,
   saringan, legenda) — hanya bentuk ini yang tidak memaksa mereka turun baris. */
.mbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:11px}
.mbtitle{font-size:20px;font-weight:800;letter-spacing:-.02em;color:var(--label);line-height:1.15}
.mbnav{display:inline-flex;align-items:center;gap:3px;background:var(--surface-2,var(--panel2));border:1px solid var(--separator,var(--line));border-radius:99px;padding:3px 4px}
.mbnav:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.mbb{border:0;background:transparent;color:var(--label-2,var(--mut));min-width:32px;height:32px;border-radius:99px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font:700 12px/1 inherit;padding:0;transition:background-color .15s,color .15s}
.mbb:hover{background:var(--surface-3,var(--panel));color:var(--label)}
.mbb.mbnow{min-width:auto;padding:0 12px;letter-spacing:.01em}
.mbb[disabled]{color:var(--label-3,var(--mut));cursor:default;opacity:.55}
.mbb[disabled]:hover{background:transparent}
.mbcnt{color:var(--label-2,var(--mut));font-size:12.5px}
.mbend{margin-left:auto;display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.mbnota{display:flex;align-items:center;gap:9px;flex-wrap:wrap;background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:12px;padding:8px 12px;font-size:12.5px;margin:0 0 11px;line-height:1.45}
@media(max-width:640px){
 .mbtitle{font-size:17px}
 .mbb{min-width:44px;height:44px}          /* ambang sentuh Apple HIG */
 .mbb.mbnow{padding:0 16px}
 .mbar{gap:8px}
}
.ccnum{font-size:12px;color:var(--mut)}
.ccchip{display:block;font-size:12px;padding:1px 5px;border-radius:4px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}
.cctoday{background:var(--accent-soft)}
.calnum-today{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 3px;border-radius:50%;background:var(--acc);color:var(--on-accent,#1a1206);font-weight:800;line-height:1}
.mtgcal table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:5px}
.mtgcal th{padding:2px 0 6px;font-size:12px;letter-spacing:var(--ls-caps,.14em);color:var(--mut);text-transform:uppercase;text-align:center}
.mtgcal td{width:14.28%;vertical-align:top;height:110px;padding:6px 6px 5px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);overflow:hidden}
.mtgcal td.mc-out{background:transparent;border-color:transparent}
.mtgcal td.mc-today{border-color:var(--acc);box-shadow:inset 0 0 0 1px var(--acc)}
.mtgcal .mc-num{font-size:12px;font-weight:700;color:var(--mut);margin-bottom:4px}
.mtgcal td.mc-today .mc-num{color:var(--acc)}
.mtgcal .mc-ev{display:block;font-size:12px;line-height:1.5;padding:2px 6px;border-radius:6px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff;cursor:pointer}
.mtgcal .mc-ev b{font-weight:700}
.mtgcal .mc-more{display:block;font-size:12px;color:var(--mut);margin-top:3px}
@media(max-width:760px){.mtgcal table{border-spacing:3px}.mtgcal td{height:80px;padding:3px;border-radius:9px}.mtgcal th{font-size:12px}.mtgcal .mc-ev{font-size:12px;padding:1px 4px;border-radius:5px}.mtgcal .mc-num{font-size:12px;margin-bottom:2px}}
@media(max-width:1024px){.cctab td{height:auto;min-height:48px}.ccchip{font-size:12px}}
@media print{#side,#mtog,#sideov,#rangebar{display:none!important}#main{margin-left:0!important}.noprint{display:none!important}.panel{break-inside:avoid}body{background:#fff}}
/* Bottom navigation (mobile, jangkauan jempol) */
#botnav{display:none}
/* ===== FAB + Bottom-sheet AKSI CEPAT (review#124 F1, Theo) =====
   Bottom nav-nya SUDAH ADA sejak lama — yang kurang dari spesifikasi Theo cuma tombol aksi cepat
   di tengah + lembar aksinya. Jadi ini menambah, bukan membangun ulang.
   Warna 100% token MJDS yang sudah terpasang (--accent/--surface/--separator/--label…), tanpa satu
   pun warna baru, supaya tema gelap & terang dua-duanya otomatis benar. Ikon lewat IC() (Lucide),
   sejalan aturan "UI pakai ikon, bukan emoji". Hanya aktif di breakpoint mobile — desktop tak
   tersentuh sama sekali. */
#mjFab,#mjSheetWrap,#ovHariIni,#ovSering{display:none}
@media(max-width:1024px){
  /* Grid "Sering dipakai" (F3, prototipe varian D) — token MJDS saja */
  #ovSering{display:block}
  #ovSering .sr-card{padding:14px 15px}
  #ovSering .sr-h{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
    color:var(--accent);display:flex;align-items:center;gap:7px;margin-bottom:11px}
  #ovSering .sr-h svg{width:17px;height:17px}
  #ovSering .sr-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
  @media(max-width:359px){#ovSering .sr-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
  #ovSering .sr-i{display:flex;flex-direction:column;align-items:center;gap:6px;padding:11px 4px;
    background:var(--surface-2,rgba(255,255,255,.05));border:1px solid var(--separator);
    border-radius:var(--r-btn,12px);color:var(--label,#fff);font-size:12px;font-weight:600;
    line-height:1.25;text-align:center;cursor:pointer;min-height:72px;
    -webkit-tap-highlight-color:transparent}
  #ovSering .sr-i:active{background:var(--accent-soft,rgba(255,255,255,.1))}
  #ovSering .sr-ic{display:inline-flex;align-items:center;justify-content:center;color:var(--accent)}
  #ovSering .sr-ic svg{width:20px;height:20px}
  #ovSering .sr-all{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;
    margin-top:11px;min-height:44px}
  #ovSering .sr-all svg{width:16px;height:16px}
  /* Kartu "Hari Ini" di Beranda mobile (F2) — token MJDS saja, tanpa warna baru */
  #ovHariIni{display:block}
  #ovHariIni .hi-card{padding:14px 15px}
  #ovHariIni .hi-h{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
    color:var(--accent);display:flex;align-items:center;gap:7px;margin-bottom:9px}
  #ovHariIni .hi-h svg{width:17px;height:17px}
  #ovHariIni .hi-absen{font-size:15px;line-height:1.45;color:var(--label,#fff)}
  #ovHariIni .hi-aksi{display:flex;gap:8px;flex-wrap:wrap;margin-top:11px}
  #ovHariIni .hi-aksi .preset{display:inline-flex;align-items:center;gap:6px;min-height:44px}
  #ovHariIni .hi-aksi .preset svg{width:16px;height:16px}
  #ovHariIni .hi-sep{height:1px;background:var(--separator);margin:13px 0 11px}
  #ovHariIni .hi-ag{display:flex;align-items:flex-start;gap:9px;padding:7px 0;font-size:14px;
    line-height:1.4;color:var(--label,#fff)}
  #ovHariIni .hi-ag+.hi-ag{border-top:1px solid var(--separator)}
  #ovHariIni .hi-ag svg{width:16px;height:16px;flex:0 0 auto;margin-top:2px;color:var(--accent)}
  #mjFab{display:flex;position:fixed;left:50%;transform:translateX(-50%);z-index:72;
    bottom:calc(env(safe-area-inset-bottom) + 30px);width:56px;height:56px;border-radius:50%;
    align-items:center;justify-content:center;border:1px solid var(--separator);
    background:var(--acc);color:var(--accbtn-fg,#fff);cursor:pointer;/* --accent-ink TIDAK PERNAH didefinisikan di berkas ini, jadi warna ikon jatuh ke #111. Di Tema Terang accent = maroon #640F07 -> kontras 1,45:1, ikon nyaris tak terlihat, padahal FAB ini pintu utama di HP. --accbtn-fg dipakai semua tombol accent lain & didefinisikan tiap tema. */
    box-shadow:0 6px 18px rgba(0,0,0,.32);-webkit-tap-highlight-color:transparent;
    transition:transform .16s ease}
  #mjFab:active{transform:translateX(-50%) scale(.93)}
  #mjFab svg{width:26px;height:26px}
  /* dua slot tengah diberi ruang supaya label tidak tertimpa FAB */
  #botnav button.fabgap{visibility:hidden;pointer-events:none;max-width:64px}
  #mjSheetWrap{display:none;position:fixed;inset:0;z-index:90}
  #mjSheetWrap.on{display:block}
  #mjSheetBd{position:absolute;inset:0;background:rgba(0,0,0,.45);
    -webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
  #mjSheet{position:absolute;left:0;right:0;bottom:0;background:var(--surface,#171a20);
    border-top:1px solid var(--separator);border-radius:var(--r-card,18px) var(--r-card,18px) 0 0;
    padding:10px 14px calc(env(safe-area-inset-bottom) + 16px);max-height:78vh;overflow:auto;
    box-shadow:0 -8px 28px rgba(0,0,0,.35);animation:mjSheetUp .2s ease}
  @keyframes mjSheetUp{from{transform:translateY(14px);opacity:.6}to{transform:none;opacity:1}}
  #mjSheet .grab{width:38px;height:4px;border-radius:2px;background:var(--separator);margin:2px auto 12px}
  #mjSheet h4{margin:0 0 10px;font-size:15px;font-weight:700;color:var(--label,#fff)}
  #mjSheet .qa{display:flex;align-items:center;gap:12px;width:100%;text-align:left;
    background:var(--surface-2,rgba(255,255,255,.05));border:1px solid var(--separator);
    border-radius:var(--r-btn,12px);padding:13px 14px;margin-bottom:8px;cursor:pointer;
    color:var(--label,#fff);font-size:15px;font-weight:600;min-height:52px;
    -webkit-tap-highlight-color:transparent}
  #mjSheet .qa:active{background:var(--accent-soft,rgba(255,255,255,.1))}
  #mjSheet .qa svg{width:21px;height:21px;flex:0 0 auto;color:var(--accent)}
  #mjSheet .qa .sub{display:block;font-size:12px;font-weight:500;color:var(--mut,#9aa0a6);margin-top:2px}
  #mjSheet .qa .cnt{margin-left:auto;background:var(--red);color:#fff;font-size:12px;font-weight:700;
    min-width:20px;height:20px;line-height:20px;border-radius:10px;text-align:center;padding:0 5px}
  body.kb #mjFab,body.chatopen #mjFab,body.kb #mjSheetWrap,body.chatopen #mjSheetWrap{display:none!important}
}
@media(max-width:1024px){
  /* Ruang bawah WAJIB: tanpa ini bar 65px menutupi baris terakhir SETIAP halaman.
     Sebelum 21 Agu hanya halaman Menu yang punya spacer manual (1 dari 163). */
  #pagewrap{padding-bottom:calc(78px + env(safe-area-inset-bottom,0px))}
  #botnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:70;background:var(--nav-material,rgba(23,26,32,.82));backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);transform:translateZ(0);border-top:1px solid var(--separator);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -2px 14px rgba(0,0,0,.18)}
  #botnav button{flex:1;background:none;border:0;color:var(--mut);font-size:12px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 2px 9px;min-height:64px;cursor:pointer;position:relative;-webkit-tap-highlight-color:transparent}
  #botnav button .bi{font-size:26px;line-height:1}
  #botnav button.active{color:var(--acc2)}
  #botnav button.active .bi{transform:scale(1.08)}
  #botnav .bbadge{position:absolute;top:5px;left:calc(50% + 8px);background:var(--red);color:#fff;font-size:12px;font-weight:700;min-width:18px;height:18px;line-height:18px;border-radius:9px;text-align:center;padding:0 4px;box-shadow:0 1px 3px rgba(0,0,0,.4)}
  /* HP: tombol melayang DIMATIKAN seluruhnya (Derry 21 Agu 2026 — "bagian bawahnya harus ada sesuatu lagi").
     Terukur di layar 375px: kolom #quickBtns menaruh lingkaran Cari + lingkaran "+" di kanan-bawah,
     TEPAT di atas bar bawah dan FAB "+" yang sudah di tengah — dua tombol "+" dalam satu layar, dan
     lingkaran Cari menutupi label kartu terakhir ("Chat" terpotong). Keduanya kini ada tanpa melayang:
     Cari = tombol kaca pembesar di header (Alternatif B header), "+" = FAB tengah (lembar Aksi cepat,
     memuat Buat Tugas). Jadi ini menghapus rangkap, bukan menghapus fungsi. */
  #quickBtns{display:none!important}
  /* Pita mendatar "Perlu Aksi" DISEMBUNYIKAN di HP (tuntasan Alternatif A, pilihan Derry 21 Agu 2026).
     Terukur di 375px: pita itu memuat Notifikasi/Absensi/Tugasku — TIGA-TIGANYA sudah ada di grid
     "Sering dipakai" tepat di bawahnya, dan Notifikasi kini juga jadi slot ber-badge di bar bawah.
     Jadi satu layar memuat pintasan yang sama sampai tiga kali, plus satu daftar geser-mendatar
     (isi tersembunyi di luar layar). Di DESKTOP pita tetap tampil: di sana grid mobile tidak dirender,
     jadi pita adalah satu-satunya akses cepat ber-badge dan tidak menggandakan apa pun. */
  .actstrip{display:none!important}
}
#gswrap{position:relative}
#gsearch{background:var(--panel2);color:var(--txt);border:1px solid var(--separator-strong,var(--line));border-radius:var(--r-input,10px);padding:6px 10px;font-size:13px;min-width:210px}
#gsres{position:fixed;background:var(--panel2);border:1px solid var(--line);border-radius:8px;z-index:9999;max-height:60vh;overflow:auto;display:none;box-shadow:0 8px 24px rgba(0,0,0,.4)}
#gsres .gh{padding:5px 12px;font-size:12px;text-transform:uppercase;letter-spacing:var(--ls-caps,.14em);color:var(--mut);background:var(--panel)}
#gsres .gi{padding:7px 12px;cursor:pointer;font-size:13px;display:flex;gap:8px;align-items:center}
#gsres .gi:hover{background:var(--panel)}
.sov-i:hover{background:var(--panel)}.sov-i:active{background:var(--panel2)}
#hdrActions{margin-left:8px;display:flex;gap:7px;align-items:center}
.hdrbtn{position:relative;display:inline-flex;align-items:center;justify-content:center;background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:6px 11px;font-size:16px;cursor:pointer;line-height:1}
.hdrbtn:hover{background:var(--panel)}
.hdrbadge{position:absolute;top:-7px;right:-7px;background:var(--red);color:#fff;font-size:12px;font-weight:700;min-width:18px;height:18px;line-height:18px;border-radius:9px;text-align:center;padding:0 4px}
/* LONCENG DI HEADER MOBILE (permintaan Theo, review#124 — jawaban no.1).
   Dulu seluruh #hdrActions disembunyikan di mobile karena Notif punya slot sendiri di bottom nav.
   Slot itu kini dilepas (nav mengikuti pilihan Theo: Beranda·Event·[+]·Tugas·Saya), jadi loncengnya
   HARUS naik ke header — kalau tidak, akses notifikasi justru mundur. Tombol panel-kanan tetap
   desktop-saja karena panel itu memang tak ada di mobile. */
@media(max-width:1024px){#hdrActions{display:flex}#hdrActions #hdrPanelR{display:none}}
#vaBanner{position:fixed;left:0;right:0;bottom:0;z-index:95;background:var(--yellow);color:var(--accbtn-fg,#111);font-size:13px;font-weight:700;text-align:center;padding:8px 12px calc(8px + env(safe-area-inset-bottom));display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap}
#vaBanner button{background:#111;color:#fff;border:0;border-radius:7px;padding:5px 13px;font-weight:700;cursor:pointer}
@media(max-width:1024px){#vaBanner{bottom:calc(64px + env(safe-area-inset-bottom))}}
.panel h3{font-size:16px;font-weight:700;letter-spacing:-.01em;margin-bottom:14px;display:flex;justify-content:space-between;align-items:center;gap:10px;line-height:1.35}
.panel h3 .tag{font-size:12px;color:var(--mut);font-weight:400}
svg{max-width:100%;height:auto}
/* WEB/desktop: jangan biarkan konten & chart melar penuh layar lebar (font chart jadi raksasa) */
@media(min-width:1025px){
  #pagewrap{max-width:min(1640px,95vw);margin-left:auto;margin-right:auto}#pagewrap:has(#auBody){max-width:none;width:auto}#pagewrap:has(#mtgWrap){max-width:none;width:auto}#pagewrap:has(#tmBody){max-width:none;width:auto}#pagewrap:has(#compWrap){max-width:none;width:auto}#pagewrap:has(#ovsWrap){max-width:none;width:auto}#pagewrap:has(#llBody),#pagewrap:has(#mcBody),#pagewrap:has(#gaBody),#pagewrap:has(#kpiaBody),#pagewrap:has(#peerWrap),#pagewrap:has(#slkBody),#pagewrap:has(#relA){max-width:none;width:auto}@media(min-width:900px){#pagewrap:has(#mtgWrap) .scrollx>table,#pagewrap:has(#tmBody) .scrollx>table,#pagewrap:has(#ovsWrap) .scrollx>table,#pagewrap:has(#compWrap) #cqtab{display:table;width:100%}}#cqtab{min-width:1040px}#cqtab th,#cqtab td{white-space:nowrap;vertical-align:middle}#cqtab thead th{position:sticky;top:0;z-index:5;background:var(--surface);box-shadow:inset 0 -1px 0 var(--line)}#cqtab tbody tr:nth-child(even){background:rgba(127,137,149,.06)}#cqtab tbody tr:hover{background:var(--accent-soft)}#cqtab td.num{text-align:right}#cqtab .scrollx,.panel:has(#cqtab) .scrollx{overflow-x:auto;-webkit-overflow-scrolling:touch}#hub_rekrut,#auBody{max-width:none!important}#auBody .panel:has(> table){max-height:74vh;overflow:auto}#auBody table thead th{position:sticky;top:0;z-index:6;background:var(--panel);box-shadow:inset 0 -1px 0 var(--separator)}@media(max-width:1024px){.auTphoto{width:52px!important}}
  .panel svg{max-width:600px}
  .scrollx>table,.scrollx table{width:100%}
  .panel>table{width:100%}
  /* WINDOW-FIT (Derry 26 Jun): SEMUA tabel data di dalam panel mengisi penuh lebar container-nya di desktop.
     Mengatasi keluhan "tabel sempit ke kiri / tidak mengikuti window" secara menyeluruh (bukan per-halaman).
     Dikecualikan: jadtab (jadwal shift), usertab (admin) — dua itu memang atur lebarnya sendiri (kolom sticky).
     #162 (14 Sep): kalender konten DICABUT dari pengecualian — alasannya tak berlaku lagi sejak display:block global. */
  #pagewrap .panel table:not(.jadtab):not(.usertab):not(.abkv){display:table;width:100%}
  #pagewrap .panel{width:100%;box-sizing:border-box}
  .grid.g2 .panel svg,.grid.g3 .panel svg{max-width:100%}
}
.svgwrap svg{max-width:none}
@media(max-width:1100px){.g2,.g3{grid-template-columns:1fr}}
@media(min-width:1500px){.tmgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:start}.tmgrid .litem{border-bottom:1px solid var(--line);border-radius:10px;padding:12px}}
/* Inbox notifikasi (gaya email/WhatsApp) */
.nflist{padding:0;overflow:hidden}
.nfrow{display:flex;gap:12px;padding:13px 16px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s;align-items:flex-start}
.nfrow:last-child{border-bottom:none}
.nfrow:hover{background:var(--panel2)}
.nfrow.unread{background:rgba(217,124,96,.07)}
/* Beranda "satu daftar" (pilihan Derry 8 Sep 2026) — satu baris per kabar, bukan satu kartu per kabar */
.ovhd{font:700 10.5px/1 ui-sans-serif,system-ui;letter-spacing:.14em;text-transform:uppercase;color:var(--acc);margin:14px 0 4px}
.ovhd:first-child{margin-top:2px}
.ovrow{display:flex;gap:11px;align-items:center;padding:9px 2px;border-bottom:1px solid var(--line)}
.ovrow:last-child{border-bottom:0}
.ovrow[onclick]:hover{background:rgba(255,255,255,.03);border-radius:8px}
.ovic{flex:0 0 auto;color:var(--mut);display:flex}
.ovtx{flex:1;min-width:0;font-size:12.8px;line-height:1.45}
.ovrt{flex:0 0 auto;font-size:12px;white-space:nowrap}
@media(max-width:640px){.ovrow{align-items:flex-start}.ovrt{font-size:12px}}
/* ===== WARTA KOPI di paling atas Beranda — KARTU KORAN (Derry 21 Agu 2026) =====
   Bentuk A dipilih, TAPI bingkainya dibuang atas permintaan Derry. Itu justru lebih benar:
   koran tidak berkotak — strukturnya datang dari GARIS mendatar dan tipografi, bukan dari
   border + radius. Jadi di sini tak ada border, tak ada radius, tak ada latar kartu; yang
   memisahkannya dari panel di bawahnya cuma satu garis tebal dan satu garis tipis.
   Warta Kopi untuk SEMUA peran (aturan berdiri 17 Jul), jadi pita ini tidak digerbang. */
.wkband{padding:2px 0 16px;margin-bottom:16px;border-bottom:1px solid var(--line);background:none;border-radius:0}
.wkband .wktop{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;font-weight:800;color:var(--gold)}
.wkband .wktop .ed{color:var(--mut);font-weight:600;letter-spacing:normal;text-transform:none;flex:1;min-width:0}
.wkband .wkbaru{background:var(--gold);color:var(--accbtn-fg,#1C0B07);border-radius:99px;padding:3px 9px;
  font-size:12px;letter-spacing:normal}
.wkband .wkrule{height:2px;background:var(--gold);opacity:1;margin:10px 0 12px}
.wkband .wkrule.tipis{height:1px;background:var(--gold);opacity:.3;margin:14px 0 12px}
/* Varian 1 (pilihan Derry 21 Agu): garis ikut warna merek, bukan hitam tebal. Tetap memberi
   pemisah tegas seperti konvensi koran, tapi terasa milik Makmur — bukan pinjaman. */
.wkband .wkmain{display:flex;gap:16px;align-items:flex-start}
.wkband .wkimg{width:132px;height:92px;border-radius:8px;object-fit:cover;flex:0 0 auto;background:var(--panel2)}
.wkband .wkhl{font-family:Charter,Georgia,"Times New Roman",serif;font-size:25px;line-height:1.2;
  font-weight:600;letter-spacing:-.01em}
.wkband .wksrc{font-size:13px;color:var(--mut);margin-top:7px}
.wkband .wklist{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.wkband .wklist a{display:block;text-decoration:none;color:var(--txt)}
.wkband .wklist a:hover .j{color:var(--acc2)}
.wkband .wklist .k{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);font-weight:800}
.wkband .wklist .j{display:block;font-size:13.5px;line-height:1.45;margin-top:5px}
/* keduanya WAJIB display:block — sebagai <span> inline, kicker dan judul menyatu jadi
   "PERFECT DAILY GRINDPDG: Gesha..." dan margin-top-nya diabaikan. */
.wkband .wkact{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.wkband .wkact button{min-height:44px}
@media(max-width:640px){
  .wkband .wkhl{font-size:20px}
  .wkband .wkimg{width:92px;height:68px}
  .wkband .wklist{grid-template-columns:1fr;gap:11px}
  .wkband .wkrule.tipis{margin:12px 0 10px}
  /* Label edisi turun ke barisnya sendiri — kalau dipaksa berdampingan dengan "WARTA KOPI"
     ia terjepit jadi empat baris di layar 375 px. */
  .wkband .wktop .ed{flex:0 0 100%;order:3;margin-top:2px}
  /* Judul ketiga disembunyikan di HP: tiga kolom yang menumpuk membuat kartu jadi ~695 px,
     lebih tinggi daripada pita lama (512 px) — padahal Beranda harus cepat menjawab
     "apa kerjaanku hari ini". Di layar lebar ketiganya tetap tampil bersebelahan. */
  .wkband .wklist a:nth-child(3){display:none}
  .wkband .wkact{flex-wrap:nowrap}
  .wkband .wkact button{flex:1 1 0;min-width:0;padding-left:10px;padding-right:10px}
}
/* Link-in-Bio: angka klik menempel di baris (A, 21 Agu 2026) */
.lbk{display:flex;align-items:center;gap:7px;flex:0 0 auto;margin-left:auto}
.lbk .bar{width:54px;height:6px;border-radius:9px;background:var(--line);overflow:hidden;flex:none}
.lbk .bar i{display:block;height:100%;background:var(--acc,#D97C60)}
.lbk .n{font-size:13px;font-weight:800;min-width:44px;text-align:right;font-variant-numeric:tabular-nums}
.lbk .n.mati{color:var(--red)}
.lbsec-k{font-weight:800;font-variant-numeric:tabular-nums}
.lbfold{display:flex;align-items:center;gap:9px;margin:12px 0 4px}
.lbfold .l{flex:1;height:1px;background:repeating-linear-gradient(90deg,var(--mut,#7b8794) 0 5px,transparent 5px 10px)}
.lbfold span{font-size:12px;letter-spacing:.07em;color:var(--mut,#7b8794);text-transform:uppercase;font-weight:700}
.lbflag{margin:6px 0;padding:9px 12px;border-radius:10px;font-size:13px;line-height:1.5;border:1px solid rgba(232,131,106,.45);background:rgba(232,131,106,.07)}
.lbflag.kuning{border-color:rgba(212,178,110,.5);background:rgba(212,178,110,.08)}
.lbflag b{color:var(--red)}
.lbflag.kuning b{color:var(--yellow,#D4B26E)}
.lbsaran{border:1px solid rgba(212,178,110,.5);background:rgba(212,178,110,.07);border-radius:14px;padding:13px 15px;margin-bottom:12px}
.lbsaran .t{font-size:15px;font-weight:800;line-height:1.3}
.lbsaran .d{font-size:13px;color:var(--mut,#7b8794);margin:6px 0 11px;line-height:1.5}
.lbsaran .r{display:flex;gap:8px;flex-wrap:wrap}
.lbsaran .r button{min-height:44px}
/* Dua tumpukan (A, 21 Agu 2026) */
.nfsec{display:flex;align-items:center;gap:8px;padding:12px 16px 8px;font-size:12px;letter-spacing:.11em;text-transform:uppercase;font-weight:700;color:var(--mut,var(--label-3,#7b8794))}
.nfsec .n{color:var(--acc2)}
.nfsec .sp{margin-left:auto;text-transform:none;letter-spacing:.02em;font-weight:600;font-size:12px}
.nfact{margin:0 12px 10px;border:1px solid rgba(217,124,96,.42);border-radius:14px;padding:12px 14px;background:var(--panel2)}
/* baris pemilik + tenggat pada kartu "Perlu kamu" */
.nfmeta{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px}
.nfmeta>span{font-size:12px;font-weight:700;padding:3px 9px;border-radius:7px;background:var(--panel);color:var(--mut)}
.nfmeta .nfown{background:rgba(163,186,212,.16);color:var(--info,#A3BAD4)}
.nfmeta .nfsla{background:rgba(130,190,155,.16);color:var(--ok,#82BE9B)}
.nfmeta .nfsla.lewat{background:rgba(232,131,106,.18);color:var(--red,#E8836A)}
.nfact .t{font-size:14px;font-weight:700;line-height:1.32}
.nfact .b{font-size:12.5px;color:var(--mut,var(--label-3,#7b8794));margin:5px 0 10px;line-height:1.45;white-space:pre-wrap}
.nfact .r{display:flex;gap:7px;flex-wrap:wrap}
.nfact .r button{min-height:40px}
.nfkabar .nfrow{padding:10px 16px}
.nfempty{padding:22px 16px;text-align:center;color:var(--mut,var(--label-3,#7b8794));font-size:13px;line-height:1.6}
.nfempty b{display:block;font-size:15px;color:var(--green);margin-bottom:5px}
@media(max-width:640px){.nfact{margin:0 8px 10px}.nfact .r button{flex:1 1 46%}}
.nfava{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;flex:0 0 auto;background:var(--panel2)}
.nftitle{font-size:14px;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.nfrow.open .nftitle{white-space:normal;overflow:visible;text-overflow:clip;word-break:break-word}
.nfrow.unread .nftitle{font-weight:700}
.nfsnip{color:var(--mut);font-size:13px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nftime{color:var(--mut);font-size:12px;flex:0 0 auto;white-space:nowrap}
.nfdot{width:9px;height:9px;border-radius:50%;background:var(--acc);flex:0 0 auto;margin-top:7px}
.nfbody{padding:2px 16px 15px 70px;border-bottom:1px solid var(--line);background:var(--panel)}
#mtog{display:none;position:fixed;top:9px;left:10px;z-index:30;background:var(--panel2);color:var(--txt);border:1px solid var(--line);border-radius:8px;font-size:18px;line-height:1;padding:8px 11px;cursor:pointer}
#ceoRefresh{position:fixed;top:52px;left:10px;z-index:66;background:var(--acc);color:var(--accbtn-fg,#111);border:1px solid var(--acc);border-radius:8px;font-size:18px;line-height:1;padding:7px 11px;cursor:pointer;font-weight:700}
#ceoRefresh:hover{filter:brightness(1.06)}
#sideov{display:none}
@media(max-width:1024px){
  #side{transform:translateX(-100%);transition:transform .22s ease;box-shadow:0 0 30px rgba(0,0,0,.5);z-index:60;width:min(300px,84vw);padding-bottom:calc(86px + env(safe-area-inset-bottom))}
  body.navopen #side{transform:translateX(0)}
  #main{margin-left:0;min-width:0;overflow-x:hidden}
  #pagewrap{padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  #mtog{display:flex;align-items:center;justify-content:center;top:calc(10px + env(safe-area-inset-top));z-index:65;width:42px;height:42px;padding:0;font-size:20px}
  #sideov{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:50}
  body.navopen #sideov{display:block}
  /* tap target navitem & sub-header lebih besar & jelas */
  .navitem{padding:15px 18px;min-height:50px;font-size:15px}
  .navitem .ic{width:22px;font-size:16px}
  #side .sub{padding:14px 18px 7px;font-size:12px}
  #side .brand{padding:14px 18px 14px 52px}
  #side{-webkit-overflow-scrolling:touch}
  #whoami{padding:10px 18px}
  body.navopen{overflow:hidden}
  .preset{min-height:36px;display:inline-flex;align-items:center}
  input.f,select.f{padding:10px 12px}
  #rangebar input[type=date],#rangebar select{padding:9px 10px}
  /* dua tanggal bagi rata selebar baris, mudah ditekan */
  #rangebar input[type=date]{flex:1 1 0;min-width:0;text-align:center}
  #rangebar > .muted{flex:0 0 auto;padding:0 2px}
  /* chip store/channel lebih lega di mobile (anti numpuk) */
  .filterbox{padding:11px 12px}
  .filterbox .grp{gap:8px;margin:9px 0}
  .chk{padding:8px 13px;font-size:13px}
  #login .box{padding:26px 22px}
  #login .box input,#login .box select{width:100%}
  .flex{gap:8px}
  .grid{gap:12px;margin-bottom:14px}
  .maxh{max-height:62vh}
  #rangebar{padding:calc(10px + env(safe-area-inset-top)) 12px 8px 58px;gap:7px;align-items:center}
  #rangebar .lbl{display:none}
  #rangebar input[type=date]{height:42px}
  #gswrap{flex:1 0 100%;order:4}
  #presets{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:6px;flex:1 0 100%;order:5;padding-bottom:2px;margin-left:-46px}
  #presets/* #90: scrollbar kini ditampilkan */
  #presets .preset{flex:0 0 auto;white-space:nowrap}
  #rangeinfo{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;opacity:.85;cursor:pointer;margin-left:-46px}
  #rangeinfo.open{white-space:normal}
  #mtog{top:calc(10px + env(safe-area-inset-top))!important}
  #rangeinfo{margin-left:0;width:100%;order:9}
  #pagewrap{--gutter:11px;padding:14px 11px calc(78px + env(safe-area-inset-bottom))}
  h2.title{font-size:18px}
  .sub-t{font-size:12px}
  .kpis{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:9px;margin-bottom:14px}
  .panel{padding:13px}
  .kpi{padding:12px 13px}
  .kpi .lbl{font-size:12px}
  .kpi .val{font-size:18px}
  #side{width:min(286px,82vw)}
  .scrollx{-webkit-overflow-scrolling:touch}
  /* tabel biasa bisa digeser horizontal sendiri (kecuali grid jadwal/kalender) */
  table:not(.jadtab):not(.cctab):not(.usertab):not(.abkv){display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}
  table:not(.jadtab):not(.cctab):not(.usertab):not(.abkv) td.small{white-space:normal;min-width:150px}
  .usertab{font-size:12px}.usertab th,.usertab td{padding:5px 6px}
/* Admin User & Role: kendali per baris diberi lebar minimum supaya isinya tak terpotong.
   Peran terpanjang "Business & People Development" (29 huruf) dan nama staf terpanjang
   "Siti Salsabila Ghina Tsuraya.S" (30) dulu terpangkas jadi "Marketing/Kont‹".
   Wadahnya (#adminUsers) sudah .scrollx, jadi tabel DIGESER mendatar — bukan meluber.
   Satuan ch, bukan px: di HP .f dipaksa 16px (anti-zoom iOS) sehingga lebar px tetap memotong. */
  /* !important DIPERLUKAN di sini: aturan anti-luber @media(max-width:1024px) menyetel
     `.panel select.f{min-width:0!important}` dan tabel ini ada di dalam .panel — tanpa
     melawannya, lebar di bawah ini mati total di layar <=1024px (persis yang dilaporkan
     Derry 17 Sep: "Creative Producti..." muncul dua kali, Manager vs Staff tak terbedakan).
     Aman dilawan KHUSUS di sini karena #adminUsers memang .scrollx — tabelnya sengaja
     digeser mendatar, bukan dipaksa muat. */
  #adminUsers .usertab select.f,#adminUsers .usertab input.f{max-width:none!important}
  #adminUsers .usertab select.auR{min-width:35ch!important}
  #adminUsers .usertab select.auK{min-width:31ch!important}
  #adminUsers .usertab input.auX{min-width:20ch!important}
  #adminUsers .usertab input.auN{min-width:18ch!important}
  #adminUsers th,#adminUsers td{white-space:nowrap}
  .secthead{font-size:12px;margin:16px 0 8px;padding:7px 11px}
  .panel h3{font-size:15px;flex-wrap:wrap;gap:6px;margin-bottom:11px}
  table{font-size:12px}
  th,td{padding:6px 8px}
  .pill{font-size:12px;padding:2px 7px}
  .preset{padding:6px 12px;font-size:12px}
  /* input >=16px supaya iOS tidak auto-zoom saat fokus */
  input.f,select.f,#gsearch{font-size:16px}
  /* anti-overflow: input/select dalam panel/form boleh menyusut & wrap (kalahkan min-width inline) */
  .panel input.f,.panel select.f,.filterbox input.f,.filterbox select.f{min-width:0!important;max-width:100%;flex:1 1 160px}
  .panel .flex,.filterbox .flex{width:100%}
  /* search jadi full-width & dropdown selebar layar */
  #gswrap{width:100%}
  #gsearch{width:100%;min-width:0}
  #gsres{min-width:0;width:92vw;max-width:92vw}
  /* topbar lebih ringkas: sembunyikan label "Tanggal:", preset jadi strip geser */
  #rangebar > .lbl{display:none}
  #presets{display:flex;gap:6px;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;width:100%;order:8;padding-bottom:2px}
  #presets .preset{flex:0 0 auto}
  /* scrollbar tipis sbg petunjuk bisa digeser */
  /* #90 dup dibuang */
  .scrollx::-webkit-scrollbar-thumb,table::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px}
  /* target sentuh lebih besar */
  details>summary{padding:4px 0}
  .navitem{padding:13px 20px}
  /* grid jadwal & kalender lebih padat di layar kecil */
  .jadtab .jadname{min-width:88px;font-size:12px}
  .jadtab td,.jadtab th{padding:2px 3px}
  .cctab td{padding:2px}
  .ccchip{font-size:12px;padding:1px 3px}
}
html{-webkit-text-size-adjust:100%}
*{-webkit-tap-highlight-color:rgba(200,132,60,.25)}
details>summary{cursor:pointer;list-style:none}
details>summary::-webkit-details-marker{display:none}
details>summary::before{content:"▸";color:var(--acc2);margin-right:6px;display:inline-block;transition:transform .15s}
details[open]>summary::before{transform:rotate(90deg)}
/* aksesibilitas: focus ring jelas untuk navigasi keyboard */
a:focus-visible,button:focus-visible,.navitem:focus-visible,.preset:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible,summary:focus-visible{outline:2px solid var(--acc2);outline-offset:2px;border-radius:6px}
.navitem,.preset,#themeBtn,#waOut,summary{transition:background .15s,color .15s,transform .12s}
.preset:active{transform:translateY(1px)}
table{width:100%;border-collapse:collapse;font-size:13px}
/* fix: panel Tasks menyempit (laporan Derry 7 Jun) — kunci lebar penuh apapun penyebabnya */
#tkWrap{display:block!important;width:100%!important;max-width:none!important}
#tkWrap .panel{display:block!important;width:100%!important;max-width:none!important;box-sizing:border-box}
#tkWrap .panel.scrollx>table{width:100%!important}
/* ===== AUDIT TIPOGRAFI fase-1 (Theola #14): chip tak boleh meluber ===== */
.pill{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
/* ===== Antrian: A (baris padat) + B (kartu hero) — pilihan Derry 21 Agu 2026.
   Brief terukur dari queue_entries 30 hari: Soka 3.607 dari 3.616 entri (99,75%), 106 tamu/hari,
   puncak 25/jam. Tamu menunggu bersamaan: median 4, p90 8, puncak 15. Kartu lama 131 px/tamu ->
   di HP 375x667 hanya 2 dari 8 tamu terlihat tanpa scroll, dan tiap scroll terjadi saat ada orang
   berdiri menunggu. Baris padat = 55 px -> 8 dari 8 muat. Hero = tombol besar utk gerakan yang
   paling sering diulang (panggil / dudukkan tamu berikutnya). ===== */
.qrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 10px;border-bottom:1px solid var(--separator)}
.qrow:last-child{border-bottom:0}
.qrow.qcalled{background:rgba(217,124,96,.10)}
.qno{flex:0 0 38px;text-align:center;line-height:1.05}
.qno b{display:block;font-size:16px;font-weight:800;color:var(--acc)}
.qno span{display:block;font-size:12px;color:var(--mut);margin-top:1px}
.qbd{flex:1;min-width:0}
.qnm{display:flex;gap:5px;align-items:center;flex-wrap:wrap;min-width:0;font-size:13.5px;font-weight:700}
.qnm .qnt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.qmt{font-size:12px;color:var(--mut);margin-top:1px;display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.qac{flex:0 0 auto;display:flex;gap:5px;align-items:center}
.qpb{padding:10px 13px;font-size:12.5px;font-weight:700;border-radius:9px;white-space:nowrap}
.qmb{padding:9px 9px;border-radius:8px}
.qlain{flex-basis:100%;min-width:0}
.qrow .pill{font-size:12px;padding:1px 7px;max-width:none}
/* hero (B) */
.qhero{border:1px solid var(--accent);border-radius:15px;padding:12px 13px;margin-bottom:10px;
       background:var(--surface);box-shadow:0 0 0 1px rgba(217,124,96,.16)}
.qhero.tunggu{border-color:var(--separator);box-shadow:none}
.qhero .cap{font-size:12px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;color:var(--accent)}
.qhero.tunggu .cap{color:var(--mut)}
.qhero .hr1{display:flex;gap:12px;align-items:center;margin-top:7px}
.qhero .hno{font-size:38px;font-weight:800;line-height:1;color:var(--accent);flex:0 0 auto}
.qhero.tunggu .hno{color:var(--label)}
.qhero .hnm{font-size:17px;font-weight:700;line-height:1.2;overflow-wrap:anywhere}
.qhero .hmt{font-size:12px;color:var(--mut);margin-top:2px;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.qhero .hac{display:flex;gap:7px;margin-top:11px;flex-wrap:wrap}
.qhero .hpb{flex:1 1 auto;min-width:140px;padding:17px;font-size:15.5px;font-weight:700;border-radius:12px}
.qhero .hmb{flex:0 0 auto;padding:15px 13px;border-radius:11px}
/* bar tipis pengganti dua kartu KPI */
.qkbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:9px 12px;margin-bottom:10px;
       background:var(--surface);border:1px solid var(--separator);border-radius:12px;font-size:12px}
.qkbar b{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}
/* HP (diukur 21 Agu dgn CSS produksi, bukan replika): versi pertama hanya memperlihatkan 2 dari 8
   tamu — chrome-nya yang makan layar, bukan barisnya. Sub-judul (teks bantuan statis), kotak panel,
   dan judul jalur dipadatkan; pil store dilepas karena judul halaman SUDAH menyebut storenya. */
@media(max-width:640px){
 #qPage>.title{font-size:19px;margin-bottom:2px}
 #qPage>.sub-t{display:none}
 #qPage .qstorepill{display:none}
 .qkbar{padding:7px 10px;margin-bottom:8px;gap:7px;font-size:12px}
 .qkbar b{font-size:13.5px}
 #qBody>.panel{padding:9px 8px;margin-bottom:9px}
 #qBody>.panel>h3{font-size:12px;text-align:left;margin:0 0 4px!important}
 .qhero{padding:10px 11px;margin-bottom:9px}
 .qhero .hno{font-size:30px}
 .qhero .hnm{font-size:15.5px}
 .qhero .hac{margin-top:9px;gap:6px}
 .qhero .hpb{padding:13px;font-size:14.5px;min-width:120px}
 .qhero .hmb{padding:12px 11px}
 .qrow{padding:5px 6px}
 .qrow .qmt{margin-top:0}
 .qno b{font-size:15px}
 .qnm{font-size:13px}
 .qmt{font-size:12px}
 /* tombol TIDAK dikecilkan di bawah ~34 px — itu target sentuh, bukan hiasan. Tinggi baris
    dihemat dari padding & jarak, bukan dari tombolnya. */
 .qpb{padding:9px 11px;font-size:12px}
 .qhero .cap{font-size:12px}
 .qhero .hr1{margin-top:5px;gap:10px}
 .qhero .hmt{font-size:12px;margin-top:1px;gap:5px}
 .qhero .hac{margin-top:8px}
 .qkbar{padding:6px 8px;margin-bottom:7px}
 /* Bar tunggal WAJIB satu baris — kalau melipat, tingginya 85 px dan memakan dua baris tamu.
    Yang dilepas di HP: nama tamu terlama & angka "dipanggil" (dua-duanya sudah ada di kartu hero)
    dan tombol muat-ulang (auto-refresh 15 detik tetap jalan sendiri). Diukur: 85 px -> 46 px. */
 .qkbar{flex-wrap:nowrap;overflow:hidden}
 .qkbar .qklnm,.qkbar .qkcall,.qkbar .qkref{display:none}
 .qkbar .qkact .preset{padding:8px 9px;font-size:12px}
 #qBody>.panel{padding:8px 7px;margin-bottom:8px}
}
.qkbar .sep{opacity:.35}
.qkbar .qkact{margin-left:auto;display:flex;gap:5px;align-items:center;flex:0 0 auto}
/* === A · "Tenang" (pilihan Derry 21 Agu) — bahasa tombol wilayah Antrian ===
   Keluhan Derry: "tombol2nya kurang profesional". Biangnya sudah ditemukan di CSS, bukan di selera:
   (1) DELAPAN tombol terisi dalam satu layar — aturan pokoknya SATU penekanan per layar;
   (2) .preset.pri memakai linear-gradient + inset kilau + box-shadow — bahasa tombol 2010,
       sementara sistem Apple & Google sekarang isian rata;
   (3) tiga radius bercampur (pil 99px, 9px, bulat penuh);
   (4) .preset memaksa HURUF BESAR + letter-spacing .08em pada tombol 12px — label sempit "berteriak".
   Perbaikannya: kelas .pri DILEPAS dari tombol baris (bukan ditimpa — supaya tak ada perang
   specificity dengan skin), aksi baris jadi isian lembut aksen, dan satu-satunya tombol tegas di
   layar adalah aksi di kartu hero — yang memang tindakan berikutnya. */
#qPage .preset{text-transform:none;letter-spacing:0}
.qpb.qquiet{background:var(--accent-soft);color:var(--accent);border:0;background-image:none;box-shadow:none;font-weight:600;border-radius:10px}
.qpb.qquiet.qok{background:rgba(52,194,140,.15);color:var(--green)}
.qmb,.qhero .hmb{border:0;background:transparent;color:var(--label-3,#7b8794);border-radius:10px;box-shadow:none;background-image:none}
.qmb:hover,.qhero .hmb:hover{background:var(--surface);color:var(--label)}
.qhero .hmb.qok{color:var(--green);font-weight:600}
.qkact .preset{border:0;background:transparent;color:var(--label-3,#7b8794);border-radius:10px;box-shadow:none;background-image:none;padding:8px 9px}
.qkact .preset:hover{background:var(--surface);color:var(--label)}
.qkact .preset.qtamu{background:var(--accent-soft);color:var(--accent);font-weight:600;padding:8px 12px}
.qhero .hpb{border:0;background-image:none;box-shadow:none;border-radius:12px;font-weight:700}
.qhero .hpb.hpbok{background:var(--green);color:var(--accbtn-fg,#fff)}
.qhero .hmt{flex-wrap:nowrap;overflow:hidden}   /* meta hero 1 baris: yang tak muat dipotong, bukan menambah tinggi */
.qhero .hmt>*{flex:0 0 auto}
@media(max-width:400px){.qpb{padding:10px 10px}.qno{flex:0 0 32px}}
/* ===== Wilayah Trainer: A (master-detail Kelas) + C (matriks Progres Barista) — pilihan Derry 21 Agu 2026.
   Alasan C jadi tab pertama: 41 dari 73 barista fulltime BELUM tersentuh training sama sekali, dan di
   layar lama 41 orang itu tidak muncul di mana pun — halaman hanya bercerita tentang kelas. ===== */
.trmd{display:grid;grid-template-columns:minmax(270px,340px) minmax(0,1fr);gap:12px;align-items:start}
@media(max-width:900px){.trmd{grid-template-columns:1fr}}
.trmd>.panel{margin:0}
.trmd-l{max-height:72vh;overflow-y:auto}
.trci{display:flex;gap:10px;align-items:center;padding:9px 8px;border-radius:10px;cursor:pointer;border:1px solid transparent}
.trci:hover{background:var(--surface)}
.trci.on{background:var(--accent-soft);border-color:var(--accent)}
.trci.off{opacity:.5}
.trcd{flex:0 0 34px;text-align:center;line-height:1.05}
.trcd b{display:block;font-size:16px;font-weight:700}
.trcd span{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--mut,#7b8794)}
.trcm{flex:1;min-width:0}
.trcm .trct{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trcm .trcs{font-size:12px;color:var(--mut,#7b8794);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.trcr{flex:0 0 auto;text-align:right;display:flex;flex-direction:column;gap:3px;align-items:flex-end}
/* --- matriks progres (C) --- */
.trpg{width:100%;border-collapse:collapse;font-size:13px}
.trpg th{font-size:12px;letter-spacing:.07em;text-transform:uppercase;color:var(--mut,#7b8794);font-weight:700;padding:0 6px 6px;text-align:center;vertical-align:bottom}
.trpg th.l{text-align:left}
.trpg td{padding:7px 6px;border-top:1px solid var(--separator);text-align:center;vertical-align:middle}
.trpg td.l{text-align:left}
.trpg tr.pr{cursor:pointer}
.trpg tr.pr:hover{background:var(--surface)}
.trpnm{font-size:13.5px;font-weight:600;line-height:1.25}
.trpsub{font-size:12px;color:var(--mut,#7b8794);margin-top:1px}
.trpbar{width:74px;height:5px;border-radius:99px;background:var(--separator);overflow:hidden;display:inline-block;vertical-align:middle}
.trpbar>i{display:block;height:100%;border-radius:99px}
.trpfr{font-size:12px;color:var(--mut,#7b8794);margin-top:3px}
.trpc{display:inline-block;min-width:30px;padding:2px 7px;border-radius:7px;font-size:12px;font-weight:700;line-height:1.5}
.trpc.ok{background:rgba(52,194,140,.17);color:var(--green)}
.trpc.mid{background:rgba(212,178,110,.18);color:var(--yellow,#D4B26E)}
.trpc.no{background:rgba(232,131,106,.16);color:var(--red)}
.trpc.non{background:transparent;color:var(--mut,#7b8794);font-weight:400}
.trpsum{display:flex;gap:16px;flex-wrap:wrap;align-items:center;padding:2px 0 10px}
.trpsum b{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums}
.trpsum .u{font-size:12px;color:var(--mut,#7b8794);margin-left:4px}
.trplg{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}
@media(max-width:640px){.trpg th.h,.trpg td.h{display:none}.trplg{margin-left:0}}
/* ===== Matriks kelengkapan event (pilihan Derry 20 Agu dari 4 alternatif — opsi C "matriks titik").
   Menggantikan deretan chip: chip memakai .pill di atas, jadi max-width 240px + ellipsis memotong
   nama, sementara title chip berisi TANGGAL — nama yang terpotong tak bisa dipulihkan dengan hover.
   Terukur 20 Agu pada panel 1150px: 13 dari 25 nama terpotong. ===== */
.ecmtx{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px}
.ecmtx th{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);font-weight:700;padding:0 4px 5px;text-align:center;white-space:nowrap}
.ecmtx th.ecmn{text-align:left}
.ecmtx td{padding:5px 4px;border-top:1px solid var(--separator)}
.ecmtx td.ecmn{max-width:min(48vw,340px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ecmtx td.ecmn .muted{font-size:12px;margin-right:5px}
.ecmtx th.ecmd,.ecmtx td.ecmd{text-align:center;width:52px}
.ecmr{cursor:pointer}
.ecmr:hover{background:var(--surface)}
.ecdot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--red)}
.ecdot.y{background:var(--green)}
.ecmore{margin-top:7px;font-size:12.5px;font-weight:700;color:var(--accent);cursor:pointer;display:inline-flex;align-items:center;gap:4px}
/* Ukur HP 20 Sep 2026 (harness 390px): "＋" per hari di agenda event 42×20px (115 buah) dan "Lihat N
   event lainnya" 17px — di bawah ambang jari. Kotak ketuk 36px, rata kanan di kolom tanggal 42px. */
.ecag-plus{cursor:pointer;color:var(--acc2);font-weight:800;font-size:17px;line-height:1;margin:3px 0 0 auto;min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center;border-radius:9px;background:color-mix(in srgb,var(--acc2) 10%,transparent)}
@media(max-width:640px){.ecmore{min-height:40px;padding:4px 6px;margin-left:-6px}}
/* HP: aturan mobile global (#pagewrap .panel table{display:block;overflow-x:auto}) mengubah tabel
   jadi blok yang menggeser ke samping — diuji 20 Agu di 375px: hanya 2 dari 4 kolom terlihat, judul
   "Kategori" terpotong, dan TAK ADA isyarat bahwa ada lanjutannya. Maka di HP kolom titik dimatikan
   dan yang kurang ditulis sebagai label merah di bawah nama; nama pun boleh 2 baris supaya utuh. */
.ecmk{display:none}
@media(max-width:640px){
 .ecmtx th.ecmd,.ecmtx td.ecmd{display:none}
 .ecmtx td.ecmn{max-width:none;white-space:normal;overflow:visible}
 .ecmk{display:block;font-style:normal;font-size:12px;font-weight:700;color:var(--red);margin-top:2px}
}
/* ===== AUDIT MOBILE (Derry 5 Jul): guard overflow-x halaman + tabel data scroll-in-box ===== */
/* Ukuran tombol DI DALAM popover lewat kelas, BUKAN style= sebaris. Sebabnya terukur 23 Sep 2026:
   gaya sebaris mengalahkan aturan HP `.preset.preset{min-height:44px}`, sehingga di layar 375px
   tombol "Buka Karyawan 360" tetap 38px dan tombol tutup 32px — dua-duanya di bawah ambang sentuh
   44px yang sudah kita tegakkan di mana-mana. Kelas biasa berbobot (0,1,0) kalah dari .preset.preset
   (0,2,0), jadi di HP aturan 44px kembali menang sementara desktop tetap ramping. */
.popact{min-height:38px}
.popchip{min-height:34px}
.popx{min-height:30px;padding:2px 8px}
/* Nama di Direktori Karyawan kini PEMICU kartu cepat, jadi ia target sentuh sungguhan — bukan
   sekadar teks bertaut. Terukur 23 Sep di layar 375px: tingginya 20px, jauh di bawah 44px,
   padahal selnya selebar 283px. Tautannya sudah display:block, jadi cukup diberi tinggi:
   seluruh lebar sel ikut bisa disentuh. Desktop tak disentuh — di sana ada penunjuk mouse. */
@media(max-width:1024px){ .rosname{padding-top:12px;padding-bottom:12px} }
@media(max-width:640px){
 #pagewrap{overflow-x:hidden;overflow-x:clip}
 #pagewrap .panel table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
 #pagewrap .usertab{min-width:0!important} /* tabel daftar lebar: muat+scroll, jangan terpotong */
 #pagewrap .mtgcal table,#pagewrap .cctab,#pagewrap .kftab{display:table!important;overflow:visible!important;width:100%}
}
/* ===== MOBILE iOS POLISH (Derry 30 Jul): tipografi & target sentuh ala app iPhone — HP saja, desktop tak tersentuh ===== */
@media(max-width:640px){
 body{font-size:15px}                              /* basis 14→15: teks turunan (td, p, div tanpa ukuran) ikut naik */
 .small{font-size:13px}                            /* util terkecil 12→13 (batas keterbacaan HP) */
 .panel h3{font-size:17px}
 /* KENAPA !important (terukur 23 Sep 2026): 79 tombol menulis min-height 30-38px SEBARIS, dan gaya
    sebaris mengalahkan APA PUN selector — termasuk .preset.preset (0,2,0). Jadi aturan 44px di bawah
    ini kalah di 79 tempat dan HP tetap menerima tombol 32px. Menambalnya lewat [style*=..] DILARANG
    (insiden perf 30 Jul), jadi !important satu-satunya jalan tersisa. Lingkup HP/tablet saja —
    desktop tetap ramping karena kedua aturan ini ada di dalam media query. */
 .preset.preset{min-height:44px!important;min-width:44px;padding:9px 15px;font-size:14px}   /* HIG Apple: target sentuh ≥44px — double-class agar menang atas button.preset (34px, baris ~841) yang letaknya lebih bawah */
 .preset.presetbesar{min-height:52px!important}  /* pintu keluar: aksi yang memang HARUS besar (tombol
    juri espresso 48px & 54px). Tanpa ini lantai 44px justru MENGECILKAN dua tombol terpenting — lawan
    dari aturan "aksi penting paling besar, bukan paling kecil". Ditaruh SESUDAH .preset.preset: bobot
    sama (0,2,0), jadi urutan sumber yang menentukan. */
 .chk{min-height:40px;display:inline-flex;align-items:center}
 .f,input.f,select.f,textarea.f{min-height:44px}
 label.sw,#modalbody label.sw,.modalbox label.sw{font-size:15px;min-height:44px}
 .kftab{font-size:14px}
 #gsres .gi{font-size:15px;padding:11px 12px}
 .litem{min-height:44px}
 .hdrbtn{min-width:44px;min-height:44px}
 /* — LANTAI TIPOGRAFI HP (riset 30 Jul: HIG floor 11pt, web a11y ≥12px; 11px = ukuran terbanyak se-app 289×).
    Prefix `body` = trik spesifisitas: menang atas rule komponen (th 11px, .pill 11px) yang posisinya lebih bawah.
    CATATAN PERF: JANGAN pakai selector [style*=...] di sini — substring-atribut universal dievaluasi ke ribuan sel tabel tiap render, bikin HP lambat (insiden 30 Jul). */
 body th{font-size:12px}                            /* header SEMUA tabel 11→12 */
 body .pill{font-size:12px;padding:3px 10px}
 body .sgrp,body .kpi .lbl,body .nftime,body .itemline,body .cc-kicker,body .ovbrand,body .tkcol-h,body #whoami,body #gsres .gh{font-size:12px}
 body #side .sub{font-size:12px}
 /* Ukur HP 20 Sep 2026 (harness 390px, 16 halaman terbanyak dibuka dari HP): eyebrow judul halaman
    10,5px (59 teks <12px di Order Produksi saja), baris "lihat N lainnya" di Inbox/Notifikasi 31px,
    judul seksi ber-klik .nfsec.sp 27px. Semua dinaikkan ke lantai 12px / 40px. */
 body .pghead-eb{font-size:12px}
 body .nfmore{min-height:42px;display:flex;align-items:center;justify-content:center}
 body .nfsec.sp{min-height:40px;align-items:center}
}
/* ── SISA TARGET SENTUH <40px (sapuan Derry 23 Sep 2026: "cek tampilan HP sama tablet nya lagi") ──
   Terukur di 390px pada enam halaman: tak ada yang meluber, tetapi tiga keluarga kontrol masih di
   bawah ambang jari:
     .qztab-t  8 tab teks Quiz setinggi 30px (padding-nya hanya di bawah, untuk garis aktif)
     input[type=checkbox] 13×13px — 71 titik di app; labelnya lebar tapi hanya 17px tinggi
     pita "Prioritas Kamu" di Beranda: dua tautan setinggi 34px
   Diperbaiki hanya di tier sentuh (≤1024px); desktop tidak disentuh. */
@media(max-width:1024px){
 .qztab-t{min-height:40px;padding-top:8px}
 :root input[type="checkbox"],:root input[type="radio"]{width:18px!important;height:18px!important}
 /* Bar atas: 4 tombol paling sering disentuh se-app (menu, kartu identitas, rentang tanggal,
    cari) ternyata TANPA KELAS apa pun — jadi .preset maupun .hdrbtn tak pernah mengenainya dan
    mereka jatuh ke min-height:30px bawaan. Terukur 23 Sep 2026 di 375px: 42 / 40 / 36 / 36 px,
    semuanya di bawah ambang 44px. Diperbaiki lewat ID (bobot 1,0,0) supaya tak perlu !important. */
 #mtog,#waCard,#hdrTgl,#hdrCari{min-height:44px}
 button.pgmore{min-height:44px}  /* "selengkapnya" di kepala SETIAP halaman: 32px. Ditulis
    button.pgmore (0,1,1) — bukan .pgmore — karena definisi aslinya ada LEBIH BAWAH (baris ~2365)
    dan dengan bobot sama ia akan menang lewat urutan. */
 #ovPriority a{min-height:40px}
}
/* ===== TIER SENTUH 641–1024px (Derry 20 Sep 2026: "upgrade juga tampilan di ipad",
   "mobile juga saya rasa butuh rekonstruksi besar") =====
   AKAR yang ditemukan lewat pengukuran, bukan tebakan: poles ergonomi (target 44px, lantai
   tipografi 12px, tabel scroll-in-box) terkurung di ≤640px, sementara mode kartu berlaku s/d
   ≤820px. iPad 768px karena itu mendapat KARTU-nya tetapi tidak POLES-nya — di sana masih ada
   tombol "＋" 15×15px, "Lihat 11 event lainnya" setinggi 17px, dan teks 11px (terukur di harness).
   Dapat yang buruk dari kedua tier sekaligus.
   Tier ini memisahkan dua hal yang selama ini tercampur:
     • SENTUH (≤1024px)  → ukuran jari & lantai keterbacaan. iPad ikut.
     • SEMPIT (≤640px)   → peringkasan bentuk (kartu, satu kolom). iPad TIDAK ikut.
   Sengaja TIDAK memindahkan `body{font-size:15px}` ke sini: itu ukuran baca telepon, dan di iPad
   jarak pandangnya lebih jauh — biarkan 14px seperti desktop. */
@media(min-width:641px) and (max-width:1024px){
 .preset.preset{min-height:44px!important;min-width:44px;padding:9px 15px;font-size:14px}
 .preset.presetbesar{min-height:52px!important}
 .f,input.f,select.f,textarea.f{min-height:44px}
 .chk{min-height:40px;display:inline-flex;align-items:center}
 label.sw{min-height:44px}
 .litem{min-height:44px}
 .hdrbtn{min-width:44px;min-height:44px}
 .ecmore{min-height:40px;padding:4px 6px;margin-left:-6px}
 body .nfmore{min-height:42px;display:flex;align-items:center;justify-content:center}
 body .nfsec.sp{min-height:40px;align-items:center}
 /* lantai tipografi sama seperti HP (prefix `body` = trik spesifisitas yang sama) */
 body th{font-size:12px}
 body .pill{font-size:12px;padding:3px 10px}
 body .sgrp,body .kpi .lbl,body .nftime,body .itemline,body .cc-kicker,body .ovbrand,body .tkcol-h,body #whoami,body #gsres .gh{font-size:12px}
 body .pghead-eb{font-size:12px}
 /* Sesudah mode kartu turun ke ≤640, tabel lebar di tablet WAJIB bisa digulir — kalau tidak,
    kunci `overflow-x:clip` global akan MEMOTONGnya (lihat catatan "KUNCI SCROLL-HORIZONTAL GLOBAL").
    Pengecualian tabel-LAYOUT persis seperti blok ≤640px. */
 #pagewrap .panel table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
 #pagewrap .usertab{min-width:0!important}
 #pagewrap .mtgcal table,#pagewrap .cctab,#pagewrap .kftab{display:table!important;overflow:visible!important;width:100%}
}
/* ===== POLES HP — "cek lagi tampilan mobile, upgrade biar super keren" (Derry 20 Sep 2026) =====
   Lima hal yang terukur/terlihat di harness 390px, bukan selera kosong:
   (1) TUMPANG TINDIH NYATA di kepala: #mtog (hamburger) position:fixed 10–54px menimpa kotak cari
       #gswrap yang mulai di x=14 — 40px pertama kolom cari tak bisa disentuh. Ini cacat yang tak
       terdeteksi pengukur lebar (tidak ada yang meluber; ia hanya tertimpa).
   (2) Umpan balik sentuh: tak ada satu pun keadaan :active, jadi ketukan terasa "mati". 0,97 skala
       + transisi 90ms = rasa app, bukan halaman web. Dihormati prefers-reduced-motion.
   (3) Strip geser (pintasan Transaksi, riwayat cari, TOC Karyawan 360) tak punya tanda bahwa ia
       bisa digeser → pudar di tepi + scroll-snap.
   (4) Tiap halaman dibuka dengan paragraf penjelas 2–3 baris sebelum isinya. Di layar 844px itu
       mahal: dipangkas 2 baris + tombol "selengkapnya" (hanya muncul kalau memang terpotong).
   (5) Irama: gutter 11px → 14px dan padding panel 13px → 14px; 11px terasa sesak dibanding
       standar sentuh 16px, tetapi 16px memakan lebar kartu — 14px kompromi yang diukur. */
@media(max-width:820px){
 /* (1) semua isi bar kepala mulai SESUDAH hamburger yang melayang */
 #rangebar #gswrap{margin-left:50px}
}
/* ===== UPGRADE HP — "upgrade tampilan mobile, kasih liat bedanya" (Derry 20 Sep 2026 malam) =====
   Diukur di harness baca-saja 390×844 sebagai CEO & GRO, bukan selera:
   (1) #mtog (hamburger, position:fixed 10–54px) masih menimpa chip PERTAMA topbar untuk peran yang kotak
       carinya terlipat jadi ikon (#hdrTgl mulai x=14, tertutup 40px) — poles sebelumnya hanya menggeser
       #gswrap. Yang digeser harus SELURUH isi bar (padding), bukan satu anak.
   (2) Beranda HP: angka & tindakan (.ovhero, .kpis, #ovPace, Perlu Kamu Kerjakan, Prioritas, Sering
       dipakai) memimpin; koran Warta Makmur/Warta Kopi, kartu YouTube & strip MI turun sesudahnya;
       analitik & panel panjang paling akhir. Ini prinsip Derry 29 Jul ("angka dulu") yang tergeser
       sejak koran & video ditambah di atasnya. Terukur: .ovhero dari y=1452 (172% layar) → y=153.
       Dikerjakan lewat flex `order` (CSS saja; DOM & desktop tak berubah).
   (3) Kartu YouTube 604px → ±430px: video utama jadi satu baris (thumb kiri, judul+angka kanan), tiga
       video lain thumbnail 16:9 rendah, catatan API disembunyikan di HP; lantai teks 12px untuk
       durasi/angka (tadinya 9–11,5px).
   (4) Ruang bawah: FAB 56px menjulang 21px di atas #botnav — isi terakhir tertutup; 78 → 104px. */
@media(max-width:820px){
 #rangebar{padding-left:58px}
 #rangebar #gswrap{margin-left:0}
}
@media(max-width:640px){
 body.pg-overview #pagewrap>.page{display:flex;flex-direction:column}
 body.pg-overview #pagewrap>.page>#wmBand,body.pg-overview #pagewrap>.page>#ovYt,body.pg-overview #pagewrap>.page>#wkBand,body.pg-overview #pagewrap>.page>#ovIntel{order:1}
 body.pg-overview #pagewrap>.page>#ovRingkas,body.pg-overview #pagewrap>.page>#ovCharts,body.pg-overview #pagewrap>.page>#ovTiles,body.pg-overview #pagewrap>.page>.panel,body.pg-overview #pagewrap>.page>.ovfold,body.pg-overview #pagewrap>.page>.note,body.pg-overview #pagewrap>.page>.actstrip{order:2}
 /* (3) — `!important` karena perender _ovYtLoad menggaya inline (jebakan yang sama tercatat 3× hari ini) */
 #ovYt .panel>a{flex-wrap:nowrap!important;align-items:flex-start!important;gap:10px!important}
 #ovYt .panel>a>span:first-child img{width:132px!important;height:74px!important}
 #ovYt .panel>a>span:last-child{flex:1 1 0!important}
 #ovYt .panel>a>span:last-child>span:first-child{font-size:14px!important}
 #ovYt .panel>a>span:last-child>span:last-child{gap:12px!important;margin-top:6px!important}
 #ovYt .panel>a>span:last-child>span:last-child>div{min-width:0!important}
 #ovYt .panel>a>span:last-child>span:last-child>div>div:last-child{font-size:15px!important}
 #ovYt .panel>div:not(.flex):not(.muted)>a>span:first-child img{width:100%!important;height:auto!important;aspect-ratio:16/9}
 #ovYt .panel>div:not(.flex):not(.muted)>a>span:nth-child(2){font-size:12px!important}
 #ovYt .panel>div.muted.small{display:none}
 #ovYt .pill{font-size:12px!important}
 #ovYt .muted{font-size:12px!important}
 .ovhd{font-size:12px}
 #pagewrap{padding-bottom:calc(104px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:640px){
 #pagewrap{--gutter:14px;padding-left:14px;padding-right:14px}
 .panel{padding:14px}
 .pghead{margin-bottom:12px}
 /* (4) paragraf pengantar dipangkas 2 baris; kelas .buka dipasang oleh _pgSubWire() */
 .pghead-s,#main .sub-t{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .pghead-s.buka,#main .sub-t.buka{display:block;-webkit-line-clamp:unset;overflow:visible}
 .pgmore{display:inline-flex;align-items:center;gap:4px;margin-top:6px;min-height:32px;padding:0 2px;background:none;border:0;color:var(--acc);font-size:13px;font-weight:700;cursor:pointer}
}
@media(max-width:1024px){
 /* (3) strip geser: pudar di tepi kanan + berhenti rapi di tiap tombol */
 .txnbar,#txnRecent,.e360toc{scroll-snap-type:x proximity;
   -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 22px),transparent 100%);
   mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 22px),transparent 100%)}
 .txnbar>*,#txnRecent>*,.e360toc>*{scroll-snap-align:start}
}
@media(hover:none){
 /* (2) umpan balik ketukan — hanya di peranti sentuh, desktop tetap pakai :hover */
 .preset:active,.hdrbtn:active,.litem:active,.navitem:active,.kpi:active,.ecmr:active,
 table[data-kartu="1"] tbody tr:active,.cprchipcal:active,.cplchipcal:active{transform:scale(.97)}
 .preset,.hdrbtn,.litem,.navitem,.kpi,table[data-kartu="1"] tbody tr{transition:transform .09s ease-out}
}
@media(prefers-reduced-motion:reduce){
 .preset:active,.hdrbtn:active,.litem:active,.navitem:active,.kpi:active,
 table[data-kartu="1"] tbody tr:active{transform:none}
}
/* ===== KALENDER DI LAYAR SENTUH (≤1024px) — "creative production ga enak dibaca" (Derry 20 Sep 2026) =====
   Terukur di harness pada Creative Production & Content Planner: tombol tambah `.cpladd` 15×15px (30 buah
   per bulan), baris tanggal `.ccnum` setinggi 18px, chip acara `.cprchipcal/.cplchipcal` berteks 11px.
   Semuanya di bawah ambang jari (32px) dan di bawah lantai keterbacaan (12px) yang sudah berlaku di
   tempat lain. Kelas-kelas ini digaya INLINE oleh perendernya, jadi `!important` di sini memang perlu —
   bukan karena kalah spesifisitas, melainkan karena melawan atribut style. */
@media(max-width:1024px){
 /* kalender dipatok min-width 875px → di iPad kolom Minggu jatuh di luar layar. 640px membuat
    sepekan penuh muat (kolom 101px) tanpa mengubah tinggi tabel; di HP ia tetap menggulir. */
 /* grid jadwal 32 kolom: 1.023 sel terukur 11px. Tabelnya menggulir mendatar, jadi menaikkan
    ke lantai 12px hanya menambah lebar gulir — tidak memotong apa pun. */
 .jadtab td,.jadtab th{font-size:12px!important}   /* sel digaya inline 11px oleh perendernya */
 .cctab{min-width:640px!important}
 .cctab td{height:auto;min-height:56px}
 .ccnum{min-height:32px;display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:12px}
 .cpladd{min-width:32px!important;min-height:32px!important;font-size:17px!important;line-height:1!important;display:inline-flex!important;align-items:center;justify-content:center;border-radius:8px}
 .cprchipcal,.cplchipcal{font-size:12px!important;min-height:30px;display:flex!important;align-items:center;padding:4px 7px!important;line-height:1.25}
 .ecag-plus{min-width:36px;min-height:36px}
}
/* #173: pegangan geser WAJIB >=44px di tablet (kriteria penerimaan Theola). Kartunya ikut naik
   ke 44px supaya pegangan punya tinggi itu DI DALAM kartu — kalau hanya area ketuknya yang
   dijorokkan keluar, ia akan mencuri ketukan kartu tetangga (jarak antar-kartu cuma 3px).
   Hanya kartu yang benar-benar punya pegangan; hanya tier sentuh. Desktop tetap serapat sekarang. */
@media(max-width:1024px){
 .cplhasgrip{min-height:44px!important;padding-right:34px!important}
 .cplhasgrip .cplgrip{width:30px}
 /* Area ketuk digenapkan ke 44x44 lewat ::after yang menjorok KE DALAM kartu, bukan keluar.
    Ke luar akan mencuri ketukan kartu tetangga (jarak antar-kartu cuma 3px); ke dalam ia hanya
    memakan sebagian kartunya sendiri — sepertiga kanan membuka geser, sisanya tetap membuka
    detail. Gripnya sendiri tetap 30px supaya judul tak terpotong di kartu selebar ~120px. */
 .cplhasgrip .cplgrip::after{content:'';position:absolute;top:0;bottom:0;right:0;width:44px}
}
/* ===== ABSENSI — RAPI & RAMAH HP (Derry 7 Agu 2026) =====
   Absensi = satu-satunya modul yang dipakai staf lapangan dari HP TIAP HARI, jadi digarap khusus.
   Tiga masalah nyata yang diperbaiki:
   (1) Tombol aksi utama JUSTRU MENGECIL di HP — `.preset.preset` (spesifisitas 0,2,0) di blok iOS
       polish mengalahkan `.bigact` (0,1,0), jadi "Absen Masuk" turun ke 44px. Dilawan dengan
       `.bigact.bigact` di dalam #absWrap (0,3,0 + id) — HANYA di sini, blok iOS polish tak disentuh.
   (2) Dua tombol berjajar (Masuk + Luar Kantor) berdesakan di layar sempit → jadi satu kolom penuh-lebar.
   (3) Tabel status hari ini kena aturan global `table{display:block;overflow-x:auto}` → harus digeser
       ke samping untuk membaca nilainya. Untuk tabel label/nilai itu salah bentuk; diubah jadi tumpuk
       (label kecil di atas, nilai di bawah) — nol scroll samping. */
.abacts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
/* ===== Absen Saya: hierarki & lebar konten (umpan balik Theola 10 Agu, review#124) =====
   Keluhannya spesifik dan semuanya soal TAMPILAN, jadi diperbaiki lewat CSS — logika tak disentuh:
   (a) tabel status membentang selebar layar. Sebabnya aturan GLOBAL `table{width:100%}`, bukan
       tabelnya sendiri; di layar lebar kolom nilai jadi menggantung jauh dari labelnya.
   (b) 5 baris teks kecil bertumpuk tanpa hierarki -> nama dibesarkan & diberi jarak.
   (c) tombol kecil di baris wajah beda-beda tinggi -> disamakan.
   (d) tombol aksi mengambang di kanan -> `.abacts` kini baris sendiri di bawah identitas.
   Semua disematkan ke wadah `.abself` SAJA. Kalau ditempel ke `#absWrap .panel`, tabel Monitor &
   Konfigurasi yang memang butuh lebar penuh ikut terjepit. */
.abself{max-width:780px}
/* ===== Halaman "Saya": baris menu pribadi (review#124, jawaban Theo no.2) =====
   Warna 100% token MJDS. Tab lama TIDAK dibongkar — di mobile ia hanya digayakan jadi baris menu,
   jadi pengelompokan & perilakunya tetap sama persis. `flex-wrap` dipindah dari gaya inline ke
   sini supaya bisa dilawan tanpa !important. */
#sayaTabs{flex-wrap:wrap}
.smlbl{font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--mut);margin:14px 2px 7px}
#sayaMenuRows{display:flex;flex-direction:column;gap:8px;margin:4px 0 14px}
.smrow{display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer;
  background:var(--surface-2,rgba(255,255,255,.05));border:1px solid var(--separator,var(--line));
  border-radius:var(--r-btn,12px);padding:12px 14px;min-height:56px;color:var(--label,var(--txt));
  -webkit-tap-highlight-color:transparent}
.smrow:active{background:var(--accent-soft,rgba(255,255,255,.1))}
.smic{display:inline-flex;align-items:center;color:var(--accent);flex:0 0 auto}
.smtx{display:flex;flex-direction:column;min-width:0;flex:1}
.smtx b{font-size:15px;font-weight:600;line-height:1.25}
.smsub{font-size:12px;color:var(--mut);margin-top:2px}
.smch{display:inline-flex;align-items:center;color:var(--mut);flex:0 0 auto}
@media(max-width:640px){
  #sayaTabs{flex-direction:column;flex-wrap:nowrap;gap:8px;border:0}
  #sayaTabs .tab{width:100%;justify-content:space-between;text-align:left;min-height:50px;
    border-radius:var(--r-btn,12px);border:1px solid var(--separator,var(--line));padding:12px 14px}
  #sayaTabs .tab::after{content:'\203A';opacity:.5;font-size:19px;line-height:1}
}
.abself .abhead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}
.abself .abident>b{font-size:17px;line-height:1.3;display:block;margin-bottom:2px}
.abself .abacts{margin-top:12px}
.abself .panel+.panel{margin-top:12px}
.abself .abkv td:first-child{white-space:nowrap}
@media(min-width:641px){
  #absWrap .abself .abkv{display:grid;grid-template-columns:136px minmax(0,1fr);column-gap:18px;width:auto;margin:0}
  #absWrap .abself .abkv tbody,#absWrap .abself .abkv tr{display:contents}
  #absWrap .abself .abkv td{border:0;background:none;padding:8px 0}
  #absWrap .abself .abkv td:first-child{font-size:12px;color:var(--mut);letter-spacing:.02em;align-self:start}
  #absWrap .abself .abkv td:last-child{line-height:1.55;border-bottom:1px solid var(--line)}
  #absWrap .abself .abkv tr:last-child td:last-child{border-bottom:0}
  .abself .small button.preset{min-height:30px;padding:4px 11px;font-size:12.5px;vertical-align:middle}
  .abself .small .pill{vertical-align:middle}
}
@media(max-width:640px){
 /* aksi: satu kolom, penuh lebar, target sentuh besar (aksi terpenting di app bagi anak lapang) */
 #absWrap .abacts{width:100%;flex:1 1 100%;flex-direction:column;align-items:stretch;gap:10px;margin-top:4px}
 #absWrap .abacts .bigact.bigact{width:100%;min-height:56px;font-size:17px;padding:15px 18px;border-radius:14px}
 #absWrap .abacts .pill{align-self:flex-start}
 /* status hari ini: label/nilai ditumpuk, bukan tabel yang harus digeser */
 #absWrap .abkv,#absWrap .abkv tbody,#absWrap .abkv tr,#absWrap .abkv td{display:block;width:100%;overflow:visible}
 #absWrap .abkv td{border:0;padding:0}
 #absWrap .abkv td:first-child{font-size:12px;color:var(--mut);padding-top:9px;letter-spacing:.01em}
 #absWrap .abkv td:last-child{padding:1px 0 9px;border-bottom:1px solid var(--line);line-height:1.5}
 #absWrap .abkv tr:last-child td:last-child{border-bottom:0;padding-bottom:0}
 /* kepala kartu: nama & tanggal jangan berebut satu baris dengan tombol */
 #absWrap .panel>.flex{align-items:flex-start}
 /* riwayat: rapatkan kolom supaya 5 kolom muat tanpa geser jauh */
 #absWrap .scrollx table{font-size:13px}
 #absWrap .scrollx th,#absWrap .scrollx td{padding:7px 8px;white-space:nowrap}
 /* catatan/penjelasan: beri ruang baca, jangan menempel tombol */
 #absWrap .note{line-height:1.55}
}
/* ===== HEADER HP — "Alternatif B: satu baris" (pilihan Derry 21 Agu 2026) =====
   TERUKUR di produksi sebelum ubah (viewport 375px): header 164 px = 20% layar sebelum konten,
   7 kontrol berjejal di baris atas, dua kolom tanggal makan 146 px (39% lebar) dan tampil "dd/"
   terpotong, tombol panel 30x30 px (di bawah ambang sentuh 44 px), dan TIDAK ADA judul halaman.
   Isi #rangebar ternyata lebih banyak dari yang terlihat: #presets (351 px) & #rangeinfo (305 px)
   masing-masing memakan satu baris penuh.
   AKAR: rentang tanggal + kotak cari itu chrome GLOBAL, padahal mayoritas halaman (Absensi, Tugas,
   Notifikasi, Chat, Meeting, Komplain) tak memakainya — ruang termahal di HP dipakai kontrol yang jarang dipakai.
   PERBAIKAN: satu baris — menu . judul halaman . chip tanggal . cari . notifikasi.
   Tanggal & cari TIDAK dihapus, hanya dilipat: chip diketuk -> baris tanggal muncul di bawah header.
   Semua ini DIKUNCI ke <=640px; tampilan desktop sama sekali tidak berubah. */
@media(max-width:1024px){
 #rangebar{flex-wrap:nowrap;gap:8px;align-items:center;min-height:56px}
 #rangebar>.rb-cal,#rangebar>#d0,#rangebar>#d1,#rangebar>span.muted,#rangebar>#presets,#rangebar>#rangeinfo,#rangebar>#gswrap{display:none}
 #hdrTitle{display:block;flex:1 1 auto;min-width:0;font-size:16px;font-weight:800;letter-spacing:-.01em;
   overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 /* kapsul C global sudah menata #hdrTgl/#hdrCari; di HP cukup jaga ambang sentuh lup 44px */
 #hdrCari{width:44px;height:44px}
 /* dilipat, bukan dihapus: chip/tombol diketuk -> barisnya muncul di bawah header */
 body.tglbuka #rangebar{flex-wrap:wrap}
 body.tglbuka #rangebar>.rb-cal,body.tglbuka #rangebar>#d0,body.tglbuka #rangebar>#d1,
 body.tglbuka #rangebar>span.muted,body.tglbuka #rangebar>#presets,body.tglbuka #rangebar>#rangeinfo{display:inline-flex}
 body.tglbuka #hdrTgl{background:var(--acc);color:#1a1206;border-color:var(--acc)}
 body.caribuka #rangebar{flex-wrap:wrap}
 body.caribuka #rangebar>#gswrap{display:flex;flex:1 1 100%}
 body.caribuka #hdrCari{background:var(--acc);color:#1a1206;border-color:var(--acc)}
 #sideToggle{display:none}            /* 30x30, di bawah ambang sentuh — tak berguna di HP (menu sudah lewat #mtog) */
 /* Di 375 px, judul + chip + 3 tombol TIDAK muat bersama (terukur: judul terhimpit jadi ~4 px).
    Yang mengalah = tombol Persetujuan — ia tetap terjangkau lewat menu & pintasan 'Sering Dipakai',
    sedangkan lonceng dipakai tiap hari dan judul menentukan orang tahu sedang di halaman mana. */
 #rangebar{gap:6px}
 #hdrTitle{min-width:96px}
 #hdrActions button[title='Persetujuan']{display:none}
}
/* Alt-2 (Derry 29 Jul) — GLOBAL, di luar media query: kontrol tanggal selalu terlipat.
   4 lapis (ikon kalender + 2 kotak tanggal + preset + kalimat 90 karakter) jadi 1 chip berlabel;
   panel muncul saat chip diketuk (body.tglbuka). Sebelumnya aturan lipat terkunci di media <=640/1024,
   sedangkan lebar BAR menyempit karena sidebar + panel kanan → kontrol bertabrakan di layar lebar. */
#rangebar>.rb-cal,#rangebar>#d0,#rangebar>#d1,#rangebar>span.muted,#rangebar>#presets,#rangebar>#rangeinfo{display:none}
body.tglbuka #rangebar{flex-wrap:wrap}
body.tglbuka #rangebar>.rb-cal,body.tglbuka #rangebar>#d0,body.tglbuka #rangebar>#d1,
body.tglbuka #rangebar>span.muted,body.tglbuka #rangebar>#presets,body.tglbuka #rangebar>#rangeinfo{display:inline-flex}
body.tglbuka #rangebar>#rangeinfo{flex:1 1 100%;font-size:12px;opacity:.85}
/* Alternatif C (pilihan Derry 8 Sep 2026): kapsul segmen ikon|rentang|panah + lup bulat senada.
   Sebelumnya #hdrTgl/#hdrCari TIDAK punya aturan di desktop (hanya di media <=1024) -> tampil
   sebagai tombol native putih yang tak nyambung dengan tema. Aturan ini GLOBAL. */
#hdrTgl{display:inline-flex;align-items:stretch;flex:0 0 auto;height:36px;padding:0;overflow:hidden;
 border:1px solid var(--line);border-radius:999px;background:var(--panel2);color:var(--mut);
 font-size:12.5px;cursor:pointer;max-width:300px;white-space:nowrap}
#hdrTgl .hseg{display:inline-flex;align-items:center;padding:0 11px}
#hdrTgl .hseg+.hseg{border-left:1px solid var(--line)}
#hdrTgl #hdrTglLbl{color:var(--txt);font-weight:700;overflow:hidden;text-overflow:ellipsis}
#hdrCari{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:36px;height:36px;
 border:1px solid var(--line);border-radius:999px;background:var(--panel2);color:var(--mut);cursor:pointer}
#hdrTgl:hover,#hdrCari:hover{border-color:var(--acc);color:var(--txt)}
body.tglbuka #hdrTgl #hdrTglLbl{color:#1a1206}
/* Cetak/PDF: abaikan skala teks perangkat (zoom) supaya laporan tetap ukuran asli */
@media print{html{zoom:1!important}}
/* fix: panel KPI Final menyempit (sama seperti Tasks) — kunci lebar penuh */
#kpiFinalBody{display:block!important;width:100%!important;max-width:none!important}
#kpiFinalBody .panel{display:block!important;width:100%!important;max-width:none!important;box-sizing:border-box}
/* GENERAL (10 Jun): semua panel yang berisi tabel scroll TIDAK boleh menyempit — berlaku ke semua halaman */
#pagewrap .page>.panel:has(.scrollx),#pagewrap .page>div>.panel:has(.scrollx),#pagewrap .page>.panel:has(>table){display:block!important;width:100%!important;max-width:none!important;box-sizing:border-box}
#pagewrap .scrollx{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
/* #152 (Derry 2 Sep: "order produksi ga bisa di scroll"): papan kanban dulu memakai
   `overflow-x:auto` INLINE, jadi tak ikut pola .scrollx — akibatnya (a) scrollbar-nya nyaris tak
   terlihat, (b) di iOS tak ada momentum, dan (c) RODA MOUSE tak menggesernya sama sekali (roda
   vertikal tidak menggulir wadah horizontal), sehingga kolom paling kanan praktis tak terjangkau
   di laptop tanpa trackpad. .kanx membereskan ketiganya + snap per kolom di HP. */

/* ===== BAGAN ORGANISASI (kotak + garis penghubung, bisa tarik-lepas) =====
   Garis dibuat dari ::before/::after, bukan gambar — jadi ikut warna tema sendiri.
   Ini garis STRUKTUR (penghubung pohon), bukan aksen hias di pinggir panel. */
.ocwrap{overflow:auto;padding:6px 2px 14px}
.octree{display:inline-block;transform-origin:top left;min-width:100%}
.oc,.oc ul{list-style:none;margin:0;padding:0}
.oc ul{display:flex;justify-content:center;padding-top:18px;position:relative}
.oc li{position:relative;padding:18px 7px 0;text-align:center}
.oc li::before,.oc li::after{content:'';position:absolute;top:0;right:50%;border-top:1.5px solid var(--line,#3a3129);width:50%;height:18px}
.oc li::after{right:auto;left:50%;border-left:1.5px solid var(--line,#3a3129)}
.oc li:only-child::before,.oc li:only-child::after{display:none}
.oc li:only-child{padding-top:18px}
.oc li:first-child::before,.oc li:last-child::after{border:0 none}
.oc li:last-child::before{border-right:1.5px solid var(--line,#3a3129);border-radius:0 6px 0 0}
.oc li:first-child::after{border-radius:6px 0 0 0}
.oc ul ul::before{content:'';position:absolute;top:0;left:50%;border-left:1.5px solid var(--line,#3a3129);width:0;height:18px}
.ocbox{display:inline-flex;gap:7px;align-items:center;text-align:left;background:var(--panel);border:1px solid var(--line,#3a3129);
  border-radius:10px;padding:7px 9px;min-width:150px;max-width:210px;cursor:grab;position:relative}
.ocbox:active{cursor:grabbing}
.ocbox.ocdrag{opacity:.45}
.ocbox.ocover{border-color:var(--acc);box-shadow:0 0 0 2px var(--acc) inset}
.ocbox.ocno{border-color:var(--red);box-shadow:0 0 0 2px var(--red) inset;cursor:not-allowed}
.ocbox.ochit{border-color:var(--gold,#D4B26E);box-shadow:0 0 0 2px var(--gold,#D4B26E) inset;background:var(--panel2)}
.ocnm{font-weight:700;font-size:12.5px;line-height:1.25;word-break:break-word}
.ocjb{font-size:10.5px;opacity:.72;line-height:1.3;word-break:break-word}
.occnt{position:absolute;top:-8px;right:-8px;font-size:10px;font-weight:700;background:var(--panel2);
  border:1px solid var(--line,#3a3129);border-radius:99px;padding:1px 6px}
.occluster{display:inline-block;text-align:left;background:var(--panel);border:1px dashed var(--line,#3a3129);
  border-radius:10px;padding:6px;max-width:240px}
.occluster .ocbox{min-width:0;width:100%;max-width:none;margin:2px 0;padding:4px 7px}
.ocfold{position:absolute;bottom:-9px;left:50%;transform:translateX(-50%);font-size:10px;line-height:1;
  background:var(--panel2);border:1px solid var(--line,#3a3129);border-radius:99px;padding:2px 7px;cursor:pointer}
@media(max-width:640px){.ocbox{min-width:126px;max-width:160px;padding:6px 7px}.ocnm{font-size:11.5px}.ocjb{font-size:10px}}
#pagewrap .kanx{display:flex;gap:10px;width:100%;max-width:100%;overflow-x:auto;padding-bottom:8px;
 -webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
/* #152 lanjutan (Theo via Derry 2 Sep): "header per row apakah possible dibuat freeze? supaya pas
   di-scroll ke bawah tetep tau isi dari row yang mana" + "kepotong" + "mungkin lebih baik ada bentuk
   semacam tabelnya". Sticky TIDAK bisa dipasang di papan lama: .kanx ber-overflow-x:auto sehingga
   overflow-y ikut jadi auto — sticky di dalamnya menempel ke papan yang tak pernah bergulir, jadi
   tak berguna. Karena itu papan diberi TINGGI TETAP (pola Trello): papan yang bergulir, dan header
   kolom nempel di atasnya. */
/* align-items DIBIARKAN stretch (default): kolom ikut setinggi area papan, dan itulah yang memberi
   RUANG bagi header kolom untuk menempel. Dengan flex-start, tinggi kolom = tinggi isinya, sehingga
   sticky tak punya jarak untuk menahan dan header ikut naik — terukur 2 Sep. */
#pagewrap .kanx.kanx-tinggi{max-height:calc(100vh - 250px);min-height:320px;overflow:auto}
#pagewrap .kanx .kanhd{position:sticky;top:0;z-index:6;background:var(--surface,var(--panel));
 font-weight:700;font-size:13px;padding:8px 6px 7px;border-bottom:2px solid var(--acc);
 backdrop-filter:saturate(180%) blur(8px);-webkit-backdrop-filter:saturate(180%) blur(8px)}
#pagewrap .kanx .kancol{display:flex;flex-direction:column;align-self:stretch;min-height:100%}
/* tabel: kepala kolom nempel saat digulir (pola .tmsc yang sudah ada, dipakai ulang) */
#pagewrap .potab{max-height:calc(100vh - 250px);overflow:auto}
#pagewrap .potab table{width:100%;min-width:860px}
#pagewrap .potab thead th{position:sticky;top:0;z-index:5;background:var(--surface,#171A20);box-shadow:inset 0 -1px 0 var(--line)}
/* daftar per status: judul grup nempel — bentuk paling ramah HP, tanpa geser mendatar sama sekali */
#pagewrap .polist{max-height:calc(100vh - 250px);overflow:auto}
#pagewrap .polist .grphd{position:sticky;top:0;z-index:5;background:var(--surface,var(--panel));font-weight:700;font-size:13px;
 padding:8px 6px;border-bottom:2px solid var(--acc);margin-top:2px}
@media(max-width:640px){
 #pagewrap .kanx.kanx-tinggi,#pagewrap .potab,#pagewrap .polist{max-height:calc(100vh - 210px)}
}
/* #83 (umpan balik Ivanka 5 Sep): "belum pakai mode tabel, jadi kita ga kebayang shiftnya udah
   terpenuhi ato belum. biasanya di sheets kita bisa tau pagi ada berapa orang, malem berapa orang."
   Sebabnya terlihat di video HP Salsa: di layar sempit papan berubah jadi KARTU PER ORANG (pola
   .tkmob/data-kartu), jadi pandangan PER HARI hilang — untuk tahu "Senin pagi berapa orang" ia harus
   menggulir 23 kartu dan menghitung sendiri. Dua jawaban: (a) panel CAKUPAN berdiri sendiri di ATAS
   papan (bukan baris tabel, jadi tak ikut jadi kartu), (b) mode TABEL yang mempertahankan grid. */
/* Panel Jadwal Semua Store (10 Sep 2026) — matriks cakupan + jadwal penuh.
   Sengaja .nokartu: di HP tabel ini TIDAK boleh berubah jadi kartu per orang, karena justru
   bentuk tabelnya yang membuat cakupan terbaca ("pagi berapa orang, malam berapa") — itu
   permintaan Ivanka yang memicu mode tabel di papan susun. */
.jpmtx{border-collapse:separate;border-spacing:0;font-size:12px}
.jpmtx th,.jpmtx td{padding:5px 6px;vertical-align:top}
.jpmtx td.jpst{position:sticky;left:0;background:var(--panel);border-right:1px solid var(--line);min-width:118px;z-index:1}
.jpcell{display:flex;flex-direction:column;gap:3px;min-width:78px}
.jpsh{display:flex;align-items:baseline;gap:5px;padding:2px 5px;border-radius:5px}
.jpsh .jplb{font-size:9px;font-weight:800;letter-spacing:.06em;color:var(--mut);flex:0 0 10px}
.jpsh .jpn{font-weight:800;font-size:13px;font-variant-numeric:tabular-nums}
.jpsh .jpg{font-size:10px;color:var(--mut);font-variant-numeric:tabular-nums}
.jpsh .jpnosl{font-size:9px;font-weight:800;color:var(--red);letter-spacing:.03em}
.jpk-cukup{background:var(--ok-soft)}.jpk-cukup .jpn{color:var(--ok)}
.jpk-tipis{background:var(--gold-soft)}.jpk-tipis .jpn{color:var(--gold)}
.jpk-nol{background:var(--red-soft)}.jpk-nol .jpn{color:var(--red)}
.jpesp{font-size:9.5px;font-weight:700;color:var(--acc)}
i.jpdot{width:11px;height:11px;border-radius:3px;display:inline-block;vertical-align:-1px;margin-right:3px}
.jpfull{font-size:12px}
.jpfull td,.jpfull th{padding:5px 7px}
.jpnama{cursor:pointer;border-bottom:1px dotted var(--line);transition:color .12s}.jpnama:hover,.jpnama:focus{color:var(--acc);border-bottom-color:var(--acc)}.jpnama:focus{outline:2px solid var(--acc);outline-offset:2px;border-radius:3px}.jpkode{display:inline-block;min-width:30px;text-align:center;padding:1px 5px;border-radius:5px;
  font-weight:700;font-size:11px;background:var(--accent-soft);color:var(--acc)}
.jpkode-esp{background:var(--gold-soft);color:var(--gold)}
.jpkode-off{background:var(--surface-2,transparent);color:var(--mut);font-weight:500}
/* Di HP blok ini dulu MENGECILKAN font (11px, dan label sel 9px) — arah yang salah.
   Tabel di sini memang digulir menyamping (table jadi display:block + overflow-x:auto oleh
   CSS mobile global, dan kolom store tetap menempel), jadi ruang bukan masalah; yang mahal
   justru angka yang tak terbaca sambil berdiri di lantai. Jadi di HP semuanya DIPERBESAR
   dan selnya dilebarkan; konsekuensinya gulirannya lebih panjang, dan itu ditukar sengaja. */
@media(max-width:640px){
 .jpmtx{font-size:12.5px}
 .jpcell{min-width:80px;gap:4px}
 .jpmtx td.jpst{min-width:108px}
 .jpmtx th,.jpmtx td{padding:6px 7px}
 .jpsh{padding:3px 6px;gap:6px}
 .jpsh .jplb{font-size:10.5px;flex:0 0 12px}
 .jpsh .jpn{font-size:15px}
 .jpsh .jpg{font-size:11.5px}
 .jpsh .jpnosl{font-size:10.5px}
 .jpesp{font-size:11.5px}
 .jpfull{font-size:12.5px}
 .jpfull td,.jpfull th{padding:6px 8px}
 .jpkode{font-size:12px;min-width:34px;padding:2px 6px}
 i.jpdot{width:12px;height:12px}
}
.szcov{display:grid;gap:2px;font-size:12px}
.szcov .hd{font-size:12px;color:var(--mut);text-transform:uppercase;letter-spacing:.06em;
 padding:3px 2px;text-align:center;background:var(--surface-2,#241d19);border-radius:5px;font-weight:800}
.szcov .rw{font-size:12px;font-weight:700;padding:4px 6px;display:flex;align-items:center}
.szcov .cl{text-align:center;padding:5px 2px;border-radius:6px;background:var(--surface,#1c1613);
 border:1px solid var(--line,#3a302b);font-weight:800}
.szcov .cl.kurang{border-color:var(--red,#e05a5a);color:var(--red,#e05a5a)}
.szcov .cl.kosong{opacity:.45;font-weight:400}
.szcov .cl small{display:block;font-size:12px;font-weight:400;opacity:.7;margin-top:1px}
/* Chip sel papan (4C). min-width dipatok supaya "M" dan "DUTY" tetap selebar sama — kolom
   yang lebarnya melompat-lompat membuat mata sulit menyusuri satu baris sampai habis. */
.szchip{display:inline-block;min-width:48px;padding:4px 9px;border-radius:999px;
 font-size:12px;font-weight:800;line-height:1.3;text-align:center;white-space:nowrap}
@media (max-width:640px){.szchip{min-width:42px;padding:4px 7px;font-size:12px}}
/* Mode NAMA: sel berhenti jadi kotak angka dan jadi daftar. Rata kiri & rata atas supaya
   tujuh kolom bisa dibaca menurun tanpa mata melompat-lompat mencari awal baris. */
.szcov.nama .cl{align-items:flex-start;justify-content:flex-start;text-align:left;padding:6px 8px;line-height:1.2}
.szcov.nama .szn{display:block;font-size:12px;font-weight:400;opacity:.85;margin-top:4px;line-height:1.5}
.szcov.nama .rw{align-items:flex-start;padding-top:8px}
@media(max-width:640px){
 .szcov{font-size:12px}
 .szcov .rw{font-size:12px;padding:3px 4px}
 .szcov .cl{padding:4px 1px;font-size:12px}
 .szcov .hd{font-size:12px}
 /* mode TABEL di HP: grid dipertahankan, kolom nama menempel supaya tetap tahu ini baris siapa */
 table.nokartu.szgrid th:first-child, table.nokartu.szgrid td:first-child{
  position:sticky;left:0;z-index:2;background:var(--surface,#1c1613);min-width:104px;max-width:104px}
 table.nokartu.szgrid td:first-child b{font-size:12px}
 table.nokartu.szgrid th,table.nokartu.szgrid td{font-size:12px;padding:5px 4px}
}
/* #83 diagnosa 5 Sep (#54-#56): papan setinggi 3.034px di HP. Sesudah mengisi baris TERAKHIR,
   Head Store harus menggulir 1.603px KE ATAS hanya untuk menekan Kirim — dan panel Cakupan berada
   ~1.400px di atas sel yang sedang diubah, jadi ia tak pernah melihat akibat perubahannya.
   Bar ini menempel di bawah layar: ringkasan hari bermasalah + Simpan + Kirim, selalu terjangkau. */
#pagewrap .szbar{position:sticky;bottom:0;z-index:46;margin:10px -2px 0;padding:9px 11px calc(9px + env(safe-area-inset-bottom));
 background:var(--nav-material,rgba(23,19,16,.92));backdrop-filter:saturate(180%) blur(10px);
 -webkit-backdrop-filter:saturate(180%) blur(10px);border-top:1px solid var(--line);border-radius:12px 12px 0 0;
 display:flex;gap:8px;align-items:center;flex-wrap:wrap}
#pagewrap .szbar .rk{font-size:12px;line-height:1.3;flex:1 1 130px;min-width:0}
#pagewrap .szbar .rk b{display:block;font-size:12px}
#pagewrap .szbar button{min-height:42px}
@media(max-width:640px){#pagewrap .szbar{margin-left:-11px;margin-right:-11px;border-radius:0;
  /* #botnav fixed selebar layar di HP — bar ini harus duduk DI ATASNYA, bukan tertimpa */
  bottom:calc(64px + env(safe-area-inset-bottom))}
 #pagewrap .szbar .rk{flex:1 1 100%;order:-1;margin-bottom:2px}}
#pagewrap .kanx::-webkit-scrollbar{height:10px}
#pagewrap .kanx::-webkit-scrollbar-thumb{background:var(--separator-strong,var(--line));border-radius:5px}
#pagewrap .kanx::-webkit-scrollbar-thumb:hover{background:var(--acc)}
#pagewrap .kanx::-webkit-scrollbar-track{background:transparent}
@media(max-width:640px){
 /* di HP 5 kolom 252px = 1.300px: yang terlihat cuma 1,4 kolom dan tepinya terpotong.
    Satu kolom selebar layar + snap = geser mendatar jadi jelas & terasa disengaja. */
 /* snap SENGAJA hanya di HP: di desktop ia membuat papan berhenti di titik snap sehingga ujung
    kanan tak tercapai persis — sisa beberapa piksel itu membuat handler roda menganggap papan
    'masih bisa digeser' dan terus menelan roda, jadi halaman terasa tak bisa digulir vertikal. */
 #pagewrap .kanx{scroll-snap-type:x proximity}
 #pagewrap .kanx>*{flex:0 0 86vw!important;min-width:86vw!important;scroll-snap-align:center}
}
th,td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle;line-height:1.5} /* #14: napas vertikal tabel (Derry 11 Jul "terlalu padat") */
h2.title .tag{display:none} /* #60 revisi Theo: chip/tag apa pun tidak boleh nempel di judul halaman (78 judul) — disembunyikan, bukan dihapus dari source */
/* input/select di dalam sel tabel: menyusut ikut lebar kolom (adaptif, tak memaksa tabel meluber) */
td .f,td input,td select,td .picker,td .chip-input{min-width:0;max-width:100%;width:100%;box-sizing:border-box}
/* tabel Daftar User: bagi ruang proporsional & boleh wrap supaya muat 1 layar */
.usertab{min-width:900px}.usertab td,.usertab th{white-space:normal;word-break:break-word;vertical-align:middle}
.usertab td .f,.usertab td input,.usertab td select{min-width:118px;width:100%}
.usertab th:first-child,.usertab td:first-child{min-width:150px}
tbody tr:nth-child(even){background:rgba(255,255,255,.025)}
html[data-theme="light"] tbody tr:nth-child(even){background:#f7f9fc}
/* header tabel tetap terlihat saat scroll tabel panjang */
.maxh{position:relative}
.maxh table thead th{position:sticky;top:0;background:var(--panel);z-index:2;box-shadow:0 1px 0 var(--line)}
/* scrollbar tipis & halus (desktop) */
/* #90 dup dibuang */
.scrollx::-webkit-scrollbar-thumb,.maxh::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px}
.scrollx::-webkit-scrollbar-track,.maxh::-webkit-scrollbar-track{background:transparent}
th{color:var(--mut);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:var(--ls-caps,.14em);user-select:none}
th[data-sort]{cursor:pointer}th[data-sort]:hover{color:var(--txt)}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.custlink,.emplink,.prodlink{color:var(--acc2);cursor:pointer}.custlink:hover,.emplink:hover,.prodlink:hover{text-decoration:underline}
tbody tr.click,tbody tr.clickrow{cursor:pointer}tbody tr.click:hover,tbody tr.clickrow:hover{background:var(--panel2)}tbody tr.sel{background:rgba(200,132,60,.12)}
.bar-cell{position:relative}.bar-cell .b{position:absolute;left:0;top:0;bottom:0;background:rgba(200,132,60,.18);border-radius:3px;z-index:0}
.bar-cell span{position:relative;z-index:1}
.pill{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:600;line-height:1.5;white-space:nowrap;vertical-align:middle}
.navitem.active{font-weight:600}
.kpi .val{line-height:1.2}
/* ===== Tab strip (Outage & lainnya) ===== */
.tabs{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:16px;border-bottom:1px solid var(--line)}
.tab{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border:none;background:none;color:var(--mut);cursor:pointer;font-size:14px;font-weight:600;border-bottom:2.5px solid transparent;border-radius:8px 8px 0 0;transition:background .15s,color .15s;display:inline-flex;align-items:center;gap:7px}
.tab:hover{color:var(--txt);background:var(--panel2)}
.tab.active{color:var(--acc);border-bottom-color:var(--acc)}
.tab .cnt{background:var(--panel2);color:var(--mut);border-radius:20px;padding:1px 8px;font-size:12px;font-weight:700}
.tab.active .cnt{background:var(--acc);color:var(--on-accent)}
.tab.warn.active{color:var(--red);border-bottom-color:var(--red)}.tab.warn.active .cnt{background:var(--red)}
.tabpane{display:none;animation:fadeIn .2s ease}.tabpane.active{display:block}
@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.statcard{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:3px}
.statcard .lbl{font-size:12px;color:var(--mut)}.statcard .val{font-size:24px;font-weight:700;line-height:1.2}
.sev{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}
table.capped.collapsed>tbody>tr:nth-child(n+11){display:none}
.morebtn:hover{background:var(--panel2)}
.pill.cafe{background:rgba(90,155,212,.18);color:#7fb4e0}.pill.deliv{background:rgba(200,132,60,.18);color:var(--acc2)}.pill.ecom{background:rgba(155,126,212,.2);color:#b39ae0}
.pill.crit{background:rgba(224,107,94,.2);color:#e89086}.pill.warn{background:rgba(212,179,90,.2);color:#dcc274}.pill.ok{background:rgba(76,175,125,.2);color:#74c79e}
select.f,input.f,textarea.f,textarea{background:var(--surface-2);color:var(--txt);border:1px solid var(--separator-strong,var(--separator));border-radius:var(--r-input,10px);padding:8px 12px;font-size:13px;font-family:inherit;transition:border-color var(--dur-state),background-color var(--dur-state)}
select.f:focus,input.f:focus,textarea.f:focus,textarea:focus{border-color:var(--accent);outline:none}
/* SOP form: kolom input harus RATA — label jadi blok di atas, input full-width sejajar */
.grid>div>label,.panel>label{display:block;margin:2px 0 4px;font-size:12px;color:var(--mut);font-weight:500}
.grid>div>.f,.panel>label+.f,.grid>div>input[type=file],.panel>label+input[type=file]{width:100%;box-sizing:border-box}
.grid>div{min-width:0}
select.f,input.f,textarea.f{transition:border-color .15s,box-shadow .15s}
select.f:focus,input.f:focus,textarea.f:focus,textarea:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px var(--accent-soft)}
textarea{width:100%;line-height:1.5;resize:vertical}
input.f{min-width:190px}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;margin-top:8px;color:var(--mut)}
.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.note{font-size:12px;color:var(--mut);line-height:1.6;background:var(--panel2);padding:11px 14px;border-radius:0 8px 8px 0;margin-top:12px}
.detail-box{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:18px;margin-top:14px}
.muted{color:var(--mut)}.small{font-size:12px}
.badge-rank{display:inline-block;width:22px;height:22px;line-height:22px;text-align:center;border-radius:6px;background:var(--panel2);font-weight:700;font-size:12px}
.flex{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
hr.sep{border:none;border-top:1px solid var(--line);margin:16px 0}
.svgwrap{width:100%;overflow-x:auto}svg text{fill:var(--mut);font-size:12px}
.scrollx{overflow-x:auto}.maxh{max-height:440px;overflow-y:auto}
/* ===== #74 (Theola): KUNCI SCROLL-HORIZONTAL GLOBAL — semua viewport & 4 skin ===== */
/* View tak pernah geser samping; konten lebar (tabel/chart/kalender/kanban) scroll di kontainer .scrollx-nya sendiri. */
/* overflow-x:clip dipilih (bukan hidden): TIDAK bikin scroll-container → sticky header & scroll vertikal tetap normal (sudah terbukti di guard mobile). */
html,body{overflow-x:clip}
#main,#pagewrap{overflow-x:clip}
/* pasangan wajib #74: anak grid/flex boleh menyusut (min-width:auto→0) supaya tak memaksa halaman melebar (nyambung PR #14 fase-2) */
#main .grid>*,#main .flex>*{min-width:0}
/* afordans: scrollbar tipis yang terlihat di kontainer yang bisa digeser (biar user tahu ada konten di kanan) */
/* #90: dipindah ke blok webkit tunggal */
.scrollx::-webkit-scrollbar{height:8px}
.scrollx::-webkit-scrollbar-thumb{background:var(--separator,#3a4152);border-radius:6px}
.scrollx::-webkit-scrollbar-track{background:transparent}
.itemline{font-size:12px;color:var(--mut)}
.tabbtns{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.tabbtn{padding:6px 12px;border:1px solid var(--line);border-radius:8px;cursor:pointer;color:var(--mut);font-size:12px;background:var(--panel)}
.tabbtn.active{background:var(--acc);color:#1a1206;border-color:var(--acc);font-weight:600}
.chk{display:inline-flex;align-items:center;white-space:nowrap;line-height:1.35;padding:5px 11px;border:1px solid var(--line);border-radius:7px;cursor:pointer;color:var(--mut);font-size:12px;background:var(--panel);user-select:none}
.chk.on{background:rgba(200,132,60,.2);color:var(--acc2);border-color:var(--acc)}
.chk.on::before{content:"✓ "}
/* ═══ LAPISAN SENTUH HP + KONFIRMASI BERTINGKAT — Alternatif C (pilihan Derry 21 Agu 2026) ═══
   TERUKUR sebelum dibuat, dari dash2.html:
     · 364 dari 1.353 tombol (27%) ber-padding ≤4px — di bawah ambang sentuh 44px Apple HIG
     · 161 di antaranya tepat padding:1px · 74 <input type=checkbox> bawaan (±15px)
     · yang paling terbalik: `✓ Konfirmasi hapus` & `✗ Tolak` ber-padding:2px — dua aksi paling
       berakibat memakai target paling KECIL
   KENAPA min-height/min-width dan BUKAN padding: 161 tombol menulis padding INLINE
   (style="padding:1px 6px"), dan gaya inline mengalahkan stylesheet. `min-height` tidak pernah
   ditulis inline di app ini, jadi aturan ini menang TANPA !important — tak ada perang
   spesifisitas, dan tak ada padding kecil yang perlu diubah satu-satu di 1.353 tempat.
   Hanya berlaku ≤640px: tabel padat di desktop (dengan tetikus) sengaja dibiarkan padat. */
@media (max-width:640px){
  button,.preset,label.preset,summary.preset{min-height:44px}
  button,.preset{min-width:44px}
  :root input[type=checkbox],:root input[type=radio]{width:22px!important;height:22px!important}
  select,select.f,input.f,textarea.f{min-height:44px}
}
/* Konfirmasi = titik terakhir sebelum akibat. Tombolnya justru harus paling mudah dikenai —
   dan itu berlaku di semua lebar layar, bukan cuma HP. #cfYes/#cfNo tak punya padding inline,
   jadi cukup diatur di sini. */
#cfYes,#cfNo{min-height:46px;padding:12px 18px;font-size:15px}
#cfYes{min-width:150px}
/* Pita "Urungkan" untuk aksi RINGAN — pengganti dialog yang tak lagi dibaca (497 mjConfirm,
   171 di antaranya untuk simpan/tandai/kirim). Duduk di atas bottom-nav, bukan menutupinya. */
#undowrap{position:fixed;left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom,0px));
  z-index:99998;display:flex;justify-content:center;pointer-events:none}
#undowrap .undo{pointer-events:auto;display:flex;align-items:center;gap:12px;max-width:520px;width:100%;
  background:var(--panel,#171a20);border:1px solid var(--line,#2a2f37);border-radius:13px;
  padding:11px 13px;box-shadow:0 10px 30px rgba(0,0,0,.35);font-size:13.5px;color:var(--txt,#e8eaee)}
#undowrap .undo b{font-weight:700}
#undowrap .undo .um{flex:1;min-width:0}
#undowrap .undo button{min-height:40px;padding:9px 14px;border-radius:10px;font-weight:700;font-size:13.5px;
  background:transparent;border:1px solid var(--acc,#D97C60);color:var(--acc,#D97C60);cursor:pointer;flex:0 0 auto}

#toastwrap{position:fixed;top:calc(env(safe-area-inset-top,0px) + 72px);left:50%;transform:translateX(-50%);z-index:99999;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
@media(max-width:1024px){#toastwrap{top:calc(env(safe-area-inset-top,0px) + 16px)}}
.toast{pointer-events:auto;min-width:240px;max-width:90vw;background:var(--surface);border:1px solid var(--separator);border-radius:14px;padding:13px 16px;box-shadow:var(--sh-sm),0 12px 40px rgba(0,0,0,.18);font-size:14px;color:var(--label);animation:toastIn .28s var(--ease-out)}
.toast.ok{border-left-color:var(--green)} .toast.err{border-left-color:var(--red)}
.toast b{display:block;font-size:14px;margin-bottom:2px}
.toast small{color:var(--mut);font-size:12px}
@keyframes toastIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
#modalov{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:250;display:none;align-items:flex-start;justify-content:center;overflow:auto;padding:48px 12px}
#modalov.on{display:flex}
#cfov{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:260;display:none;align-items:center;justify-content:center;overflow:auto;padding:24px 14px}
#cfov.on{display:flex}
/* ===== Fase 2R (audit UI 7 Jun): skala font, touch target, state ===== */
:root{/* #14: nama lama = ALIAS ke skala kanonik di bawah — dulu dua :root ini beda angka (13.5 vs 13, 17 vs 16, 22 vs 20/26) sehingga 'skala' cuma nama. */--fs-caption:var(--fs-xs);--fs-small:var(--fs-sm);--fs-body:var(--fs-base);--fs-emph:var(--fs-emph2);--fs-t3:var(--fs-t3c);--fs-t2:var(--fs-t2c);--fs-t1:var(--fs-t1c)}
button.preset{min-height:34px;min-width:34px}
@media(pointer:coarse){button.preset{min-height:44px;min-width:44px}.tab{min-height:42px}.seg button{min-height:38px}}
button:disabled,button[disabled]{opacity:.45;cursor:not-allowed}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button.preset:active{transform:scale(.97)}
@media(prefers-reduced-motion:reduce){button.preset:active{transform:none}}
/* ═══ Kartu pelamar: kepala seksi & garis waktu kerja (pilihan Derry 19 Sep: "A aja tapi
   timeline kerja kaya C") ═══
   Keluhannya: "ga jelas mana header mana yang lain" - dan memang benar, judul seksi dulu
   <b> 13px sementara isinya juga 13px, jadi pembedanya cuma tebal. Sekarang hierarkinya dari
   EMPAT hal sekaligus: ukuran (11.5 vs 13.5), huruf besar-kecil, warna, dan garis rambut. */
.auhead{display:flex;align-items:center;gap:9px;margin:0 0 10px;padding-bottom:7px;border-bottom:1px solid var(--separator)}
.auhead .aueb{font-size:11.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--label-3)}
.auhead .auhn{margin-left:auto;font-size:12px;color:var(--label-3);font-weight:400}
.autl{position:relative;padding-left:17px}
.autl::before{content:"";position:absolute;left:4px;top:7px;bottom:7px;width:2px;background:var(--separator)}
.autli{position:relative;padding:6px 0;font-size:13.5px;line-height:1.5}
.autli::before{content:"";position:absolute;left:-17px;top:12px;width:9px;height:9px;border-radius:50%;
 background:var(--acc);box-shadow:0 0 0 3px var(--panel)}
.autli .auper{font-size:12px;color:var(--label-2);font-variant-numeric:tabular-nums}
.autli .aujud{font-weight:700}
.autli .audet{font-size:12.5px;color:var(--label-2);line-height:1.5}
.autli.aujeda{color:var(--yellow);font-size:12.5px}
.autli.aujeda::before{background:var(--panel);border:2px solid var(--yellow)}
.modalbox{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px 22px;width:540px;max-width:94vw;box-shadow:0 24px 70px rgba(0,0,0,.55);animation:toastIn .2s ease}.modalbox.wideprofile{width:980px;max-width:96vw}.modalbox.wideprofile #modalbody{display:block;columns:2 300px;column-gap:11px}.modalbox.wideprofile #modalbody>*{break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid;margin:0 0 10px!important}.modalbox.wideprofile #modalbody>.aufull{column-span:all;-webkit-column-span:all}
.modalbox h3{margin:0 0 6px}
/* #98: modal desktop dibatasi tinggi → body scroll internal, footer (Batal/Simpan) selalu terlihat (fix tombol hantu Content Planner di laptop pendek). Mobile pakai bottom-sheet sendiri (≤640px), tak tersentuh. */
@media(min-width:641px){.modalbox{display:flex;flex-direction:column;max-height:calc(100vh - 40px)}.modalbox>#modalbody{overflow-y:auto;min-height:0;flex:1 1 auto}.modalbox>#mfoot{flex:0 0 auto}}
/* #98 pelengkap (Claude, 31 Jul) — 2 hal yang belum tertutup aturan di atas:
   (a) `.wideprofile` HARUS dikecualikan: #modalbody-nya multi-kolom (`columns:2 300px`); begitu tingginya
       dibatasi, kolom meluber ke SAMPING (scroll horizontal) alih-alih ke bawah → profil Karyawan 360 rusak.
   (b) footer dibuat sticky + berlatar: saat isi form discroll, Batal/Simpan tetap menempel di bawah dan tidak
       tertimpa teks yang lewat di belakangnya. */
/* (b) footer sticky di SEMUA lebar — di ≤640px `.modalbox` sendiri yang jadi kontainer scroll (bottom-sheet),
   jadi tanpa ini gejala "ghost button" yang sama tetap terjadi di HP: Simpan baru muncul setelah sheet discroll. */
.modalbox:not(.wideprofile)>#mfoot{position:sticky;bottom:0;z-index:5;background:var(--panel);padding-top:10px;box-shadow:0 -10px 14px -10px rgba(0,0,0,.4)}
@media(min-width:641px){
 .modalbox.wideprofile{display:block;max-height:none}
 .modalbox.wideprofile>#modalbody{overflow-y:visible}
}
/* #99: nominal slip gaji tersembunyi (pola m-banking) */
.sgmask{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.5px;opacity:.9}
.modalbox label{display:block;font-size:12px;color:var(--mut);margin:10px 0 3px}
.modalbox input,.modalbox select,.modalbox textarea{width:100%;background:var(--panel2);color:var(--txt);border:1px solid var(--separator-strong,var(--line));border-radius:var(--r-input,10px);padding:9px 11px;font-size:14px}
.modalbox textarea{min-height:64px;resize:vertical}
/* #90 dup dibuang */
#login,#sblogin{position:fixed;inset:0;background:var(--logingrad);z-index:100;display:flex;align-items:center;justify-content:center}
#sblogin{display:none}
/* Mode Supabase (produksi): jangan pernah tampilkan login pilih-peran lama — pakai email+password.
   Disetel sebelum paint via class di <html>, jadi di mobile pun tidak ada kedip "login awal". */
html.cc-sbmode #login{display:none!important}
#login .box,#sblogin .box{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:34px 38px;width:380px;max-width:92vw;box-shadow:0 20px 60px rgba(0,0,0,.5)}
#sblogin label{display:block;font-size:12px;color:var(--mut);margin:12px 0 4px}
#sblogin input{width:100%;background:var(--panel2);color:var(--txt);border:1px solid var(--separator-strong,var(--line));border-radius:var(--r-input,10px);padding:11px 12px;font-size:15px}
/* Alternatif A (Derry 20 Agu 2026) — hierarki tombol login dibetulkan.
   MASALAH TERUKUR: aturan lama menyasar SEMUA <button> di dalam #sblogin, sehingga tombol bantu
   'Tampilkan' ikut jadi lebar-penuh & terracotta — 44px, malah LEBIH TINGGI dari tombol utama
   'Masuk' (41px, di bawah ambang sentuh 44px Apple HIG). Mata tak bisa membedakan aksi utama.
   PERBAIKAN: hanya #sbBtn yang boleh tampil sebagai aksi utama; pengalih password jadi ikon mata
   DI DALAM kolom (pola yang sudah dikenal orang dari aplikasi bank). */
#sblogin button#sbBtn{width:100%;margin-top:18px;padding:14px;border:none;border-radius:12px;background:var(--acc);color:#1a1206;font-weight:800;font-size:16px;min-height:52px;cursor:pointer}
#sblogin .pwwrap{position:relative}
#sblogin .pwwrap input{padding-right:48px}
#sblogin button.pweye{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:40px;height:40px;min-height:40px;margin:0;padding:0;background:transparent;border:0;border-radius:9px;color:var(--mut);display:flex;align-items:center;justify-content:center;cursor:pointer}
#sblogin button.pweye:hover{color:var(--txt);background:var(--surface-2)}
#sblogin .s{color:var(--mut);font-size:13px;margin-top:4px}
#sblogin .err{color:var(--acc2);font-size:12px;margin-top:10px;min-height:16px;text-align:center}
#sblogin h1{margin:0;font-size:22px}
#login h1{font-size:20px;margin-bottom:4px}#login .s{color:var(--mut);font-size:13px;margin-bottom:20px}
#login label{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--mut);display:block;margin:12px 0 5px}
#login input,#login select{width:100%;background:var(--panel2);color:var(--txt);border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-size:14px}
#login button{width:100%;margin-top:20px;background:var(--acc);color:#1a1206;border:none;border-radius:9px;padding:12px;font-size:14px;font-weight:700;cursor:pointer}
#login .err{color:var(--red);font-size:12px;margin-top:8px;min-height:14px}
/* label identitas sidebar tetap 11px: di lebar sidebar tetap, 12px memotong nama lebih awal
   ("Derry K…" jadi "Derr…"). Ini label mikro, bukan teks baca — pengecualian yang sama dengan tick sumbu. */
#whoami{padding:11px 20px 12px;font-size:11px;color:var(--mut);border-bottom:1px solid var(--line);margin-bottom:8px;display:block}
/* Kartu identitas (varian B, Derry 14 Sep 2026). Nama TIDAK lagi berbagi baris dengan tautan
   aksi — itu sebab lama "Derry Kustiadihardjo · CEO / Owner" terpotong jadi "Derry K…". */
#waCard{display:flex;gap:11px;align-items:center;width:100%;background:none;border:0;padding:0;
 text-align:left;cursor:pointer;color:inherit;font:inherit;border-radius:9px}
#waCard:hover .waav{filter:brightness(1.12)}
#waCard:hover .waav::after{opacity:1}
#waCard:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
.waav{position:relative;width:40px;height:40px;border-radius:50%;flex:0 0 auto;overflow:hidden;
 display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;
 color:var(--bg,#231B14);background:linear-gradient(140deg,var(--gold),var(--acc));
 line-height:1;letter-spacing:.02em;transition:filter .15s}
.waav img{width:100%;height:100%;object-fit:cover;display:block}
.waav::after{content:'';position:absolute;inset:0;border-radius:50%;opacity:0;transition:opacity .15s;
 background:rgba(0,0,0,.45) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z'/%3E%3Ccircle cx='12' cy='13' r='3'/%3E%3C/svg%3E") center/16px no-repeat}
.waid{min-width:0;display:flex;flex-direction:column;gap:3px}
.wanm{font-size:12.5px;font-weight:600;color:var(--label,#F6F1E7);line-height:1.25;
 overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.warole{align-self:flex-start;font-size:9.5px;font-weight:700;letter-spacing:.04em;padding:1.5px 7px;
 border-radius:20px;background:var(--gold-soft);color:var(--gold);text-transform:uppercase;
 max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.waacts{display:flex;gap:12px;margin-top:8px;font-size:11px}
.waacts a{cursor:pointer;white-space:nowrap}
#whoami .waacts a{flex:0 0 auto;white-space:nowrap}
@media(max-width:820px){#rangebar{overflow-x:auto;-webkit-overflow-scrolling:touch}
 /* Sapuan mobile 9 Sep 2026: di 385px isi topbar meluber jadi 474px -> tombol Chat Marketing
    terlempar ke x=418 (DI LUAR layar, tak bisa diketuk) dan menyisakan strip gulir mendatar
    di bawah topbar. Yang mengalah harus JUDUL (punya ellipsis, dan judul halaman tetap ada di
    badan), bukan tombol yang hilang dari layar. Ambang sentuh 44px tak dikurangi. */
 #rangebar{padding-left:14px;padding-right:12px;gap:7px}
 /* Judul di topbar HP TIDAK dipertahankan: anggaran ruangnya cuma ~67px (terbaca "l…"), dan ia
    tertimpa tombol hamburger yang fixed di 10-54px. Judul halaman sendiri sudah besar & jelas di
    badan halaman. Disembunyikan cara aksesibel — tetap dibaca screen reader & aria-live. */
 #hdrTitle{position:absolute!important;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 #hdrTgl{max-width:168px}
 #hdrActions{flex:0 0 auto}}
#whoami a{cursor:pointer}
#themerow{padding:0 20px 12px}#themeBtn{cursor:pointer;color:var(--acc2);font-size:12px}#themeBtn:hover{text-decoration:underline}
#themeSeg{flex-wrap:wrap}
/* .thopt = kembaran visual .rb-seg .preset — SENGAJA bukan class .preset agar tidak tersapu syncPresets()/binder onclick rangebar */
#themeSeg .thopt{border:0;background:transparent;border-radius:8px;padding:5px 9px;font-size:12px;font-weight:700;color:var(--label-2);cursor:pointer;font-family:inherit;line-height:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background-color var(--dur-state),color var(--dur-state)}
#themeSeg .thopt .thdot{width:10px;height:10px;border-radius:50%;border:1.5px solid transparent;flex:0 0 auto;box-sizing:border-box}
#themeSeg .thopt:hover{background:rgba(127,127,127,.14);color:var(--label)}
#themeSeg .thopt.active{background:var(--surface);color:var(--label);box-shadow:0 1px 2px rgba(0,0,0,.22)}
#themeSeg .thopt:active{transform:scale(.96)}
.pager{display:flex;gap:8px;align-items:center;margin-top:10px;font-size:12px;color:var(--mut)}
.pager button{background:var(--panel2);color:var(--txt);border:1px solid var(--line);border-radius:6px;padding:4px 10px;cursor:pointer}
.filterbox{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:14px}
.filterbox .grp{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:8px 0}.filterbox .grp b{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--mut);flex:0 0 auto;margin-right:2px}

#ptr{position:fixed;top:0;left:50%;margin-left:-22px;z-index:96;width:44px;height:44px;border-radius:50%;background:var(--surface);border:1px solid var(--separator);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.3);transform:translateY(-54px);transition:opacity .15s;color:var(--label-2)}
#ptr.go{color:var(--accent)}
#ptr.spin svg{animation:ptrspin .8s linear infinite}
@keyframes ptrspin{to{transform:rotate(360deg)}}
@media(min-width:1025px){#ptr{display:none}}
body.kb #botnav,body.kb #quickBtns,body.kb .spill,body.kb #ptr{display:none!important}
/* Chat percakapan = layar penuh ala WhatsApp di HP (input nempel di atas keyboard, nav & FAB disembunyikan) */
body.chatopen #botnav,body.chatopen #quickBtns,body.chatopen .spill,body.chatopen #ptr,body.chatopen #ccCtx{display:none!important}
body.chatopen{overflow:hidden}
#chatRoot.chatfs{position:fixed!important;left:0;right:0;top:0;width:100vw;z-index:3000;margin:0!important;border-radius:0!important;max-width:100vw!important;height:100dvh;display:flex!important;flex-direction:column;background:var(--bg,#0f1115);box-sizing:border-box;padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px)!important}
#chatRoot.chatfs>.flex:first-child{padding-top:11px!important}
#chatRoot.chatfs #chatBox{flex:1 1 auto!important;height:auto!important;max-height:none!important;min-height:0}
body.chatopen #modalov{z-index:3200!important}
@media(max-width:1024px){input,select,textarea,.f{font-size:16px!important}}
/* checkbox/radio jangan kena gaya input full-width (fix tumpang-tindih label) */
input[type=checkbox],input[type=radio]{width:auto!important;min-width:0!important;max-width:none!important;height:auto!important;padding:0!important;border:0!important;background:none!important;-webkit-appearance:auto!important;appearance:auto!important;accent-color:var(--acc,#e8743b);flex:0 0 auto;vertical-align:middle;margin:0 2px 0 0;box-shadow:none!important}
body.norange #rangebar>*{display:none!important}
body.norange #rangebar #gswrap{display:flex!important;flex:1;min-width:0}
body.norange #rangebar #gswrap input{width:100%}
body.pg-tanya #quickBtns{display:none}
body.pg-queue #quickBtns,body.pg-queue .spill{display:none!important} /* antrian: hilangkan tombol melayang biar tak tumpang tindih dgn daftar */

/* ===== override akhir: rasa iOS (sheet & switch) ===== */
@media(max-width:640px){
 #modalov{align-items:flex-end;padding:0;overflow:hidden}
 #modalov .modalbox{width:100%;max-width:none;border-radius:22px 22px 0 0;animation:sheetup .3s var(--ease-out)}
 /* #139 B1+B2 (Theo 23 Agu): dulu .modalbox 90vh + overflow:auto + flex-end → saat keyboard buka,
    overlay ikut visualViewport (~400px) tapi sheet tetap 90vh dari LARGE viewport (~720px) → luapan ke
    ATAS tak terjangkau (judul/✕/Section hilang) & footer Simpan mendarat di tengah. Sekarang: sheet
    MENGISI overlay, flex-column, scroll PINDAH ke #modalbody, #mfoot jadi footer flex di dasar layar.
    .wideprofile dikecualikan (kolom multi `columns:2 300px` meluber ke samping kalau tinggi dibatasi). */
 #modalov .modalbox:not(.wideprofile){display:flex;flex-direction:column;max-height:100%;overflow:visible;padding-bottom:0}
 #modalov .modalbox:not(.wideprofile)>#modalbody{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
 #modalov .modalbox:not(.wideprofile)>#mfoot{flex:0 0 auto;position:static;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}
 #modalov .modalbox.wideprofile{max-height:90vh;overflow:auto;padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}
}
label.sw,#modalbody label.sw,.modalbox label.sw{display:inline-flex;align-items:center;gap:10px;font-size:14px}
.kftab{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}.kftab col.kfcn{width:42px}.kftab col.kfce{width:48px}.kftab th{font-size:12px;color:var(--mut);font-weight:700;text-align:center;padding:2px 0}.kftab th:first-child{text-align:left}.kftab td{border-bottom:1px solid var(--separator);padding:6px 2px;vertical-align:middle}.kftab .kflbl{text-align:left;padding-right:8px;line-height:1.35}.kftab .kfc{text-align:center}.kfck{display:inline-flex;cursor:pointer}.kfck input{position:absolute;opacity:0;width:0;height:0}.kfck span{width:22px;height:22px;border:2px solid var(--line);border-radius:6px;display:inline-block;transition:.12s}.kfck input:checked+span{background:var(--acc);border-color:var(--acc);box-shadow:inset 0 0 0 3px var(--panel2)}.kftab .kfsubrow td{border-bottom:none;padding:12px 0 2px}.kfsub{font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--txt)}.kftab .kfedit{width:54px;text-align:right;white-space:nowrap;padding-left:6px}.kfia{cursor:pointer;color:var(--mut);font-size:13px;padding:3px;border-radius:6px;text-decoration:none;display:inline-block}.kfia:hover{background:var(--panel);color:var(--txt)}
/* ===== POLISH LAYER — UI/UX kelas-juara (aditif, token-based, aman tema+glass) ===== */
*{-webkit-tap-highlight-color:transparent}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
:where(a,button,.preset,.navitem,.pill,.chip,.f,input,select,textarea,.litem,tbody tr.click){transition:background-color var(--dur-state,.24s) var(--ease-out),border-color var(--dur-state,.24s) var(--ease-out),box-shadow var(--dur-state,.24s) var(--ease-out),transform var(--dur-press,.12s) var(--ease-out),color var(--dur-state,.24s) var(--ease-out)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
:where(button,.preset,.navitem,.chip):active{transform:translateY(1px) scale(.985)}
.preset:hover{border-color:var(--accent-2)}
html:not([data-glass="on"]) .preset.pri{background:linear-gradient(180deg,var(--accent-2),var(--accent));color:#1a1206;border:0;box-shadow:0 2px 10px -3px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.28)}
html:not([data-glass="on"]) .preset.pri:hover{filter:brightness(1.05)}
.f:focus,.f:focus-visible,input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.navitem{position:relative}
.navitem:hover{background:var(--accent-soft)}
.navitem.active::before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}
.litem.click:hover,tbody tr.click:hover{background:var(--accent-soft)}
/* #90: properti standar DIHAPUS dari * — di Chrome 121+ ia mematikan seluruh ::-webkit-scrollbar (jadi overlay macOS = tak terlihat). Firefox tetap dilayani lewat @supports di bawah. */
@supports (-moz-appearance:none){*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}}
/* #90 (Theo 28 Jul) — SATU sumber scrollbar se-app: tipis 8px, classic (selalu terlihat saat konten scrollable). */
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px}
::-webkit-scrollbar-thumb:hover{background:var(--separator-strong,var(--track))}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-corner{background:transparent}
/* #90 dup dibuang */
/* #90 (Theo 30 Jul): dup thumb ber-`border:2px`+`background-clip:padding-box` DIBUANG — ia menimpa aturan classic di atas & menyempitkan thumb efektif jadi ~4px dari 8px. Kini benar-benar SATU sumber scrollbar (thumb 8px var(--line), selalu terlihat). */
@media(hover:hover){.micard:hover{transform:translateY(-1px)}}
@media(prefers-reduced-motion:reduce){*{transition-duration:.001ms!important;animation-duration:.001ms!important}}
/* Anti-HP-panas (Derry 31 Jul): saat app tidak terlihat (pindah app / layar mati), BEKUKAN semua animasi.
   Animasi yang berputar tanpa dilihat tetap membebani GPU & baterai — terutama skin HUD/Sakura. */
html[data-bg="1"] *,html[data-bg="1"] *::before,html[data-bg="1"] *::after{animation-play-state:paused!important;transition:none!important}
/* ===== POLISH LAYER 2 — refinement komponen se-command-center (aman, token, dark/light/glass) ===== */
.navitem.active::before{top:6px;bottom:6px;width:3.5px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,var(--accent-2),var(--accent));box-shadow:0 0 10px -2px var(--accent)}
#side .sub{font-size:12px;letter-spacing:1.2px;opacity:.92}
#side .sub:hover{color:var(--accent)}
#rangebar input[type=date],#rangebar select,#gsearch{border-radius:var(--r-btn)}
.tag{display:inline-flex;align-items:center;gap:4px}
/* (dihapus) sticky thead global — bikin header mengambang menutupi baris di tabel tengah-panel. Tabel besar yg butuh sticky punya rule sendiri. */
th.num,td.num,.num{font-variant-numeric:tabular-nums}
tbody tr.sel{box-shadow:inset 3px 0 0 var(--accent)}
.empty-soft{text-align:center;color:var(--label-3);padding:26px 16px;border:1px dashed var(--separator);border-radius:var(--r-card);background:color-mix(in srgb,var(--label) 2%,transparent)}
@media(pointer:coarse){.chk,.chip-f{min-height:42px}}
/* ===== #14 Disiplin tipografi (fondasi, req Theola) — type-scale + leading konsisten ===== */
:root{/* #14 SKALA TIPOGRAFI KANONIK — satu-satunya sumber angka. Tambah ukuran baru? pakai/tambah token di sini, jangan tulis px liar di aturan lain. */--fs-2xs:10px;--fs-xs:11px;--fs-sm:12px;--fs-base:13px;--fs-md:14px;--fs-emph2:15px;--fs-lg:16px;--fs-t3c:18px;--fs-xl:20px;--fs-t2c:22px;--fs-2xl:26px;--fs-t1c:30px;--lh-tight:1.2;--lh-snug:1.35;--lh-normal:1.5;--lh-relaxed:1.6}
/* ===== #14 (Theola) — ANTI "TEKS NABRAK SHAPE": 3 aturan komponen, global =====
   Diminta sebagai perbaikan SISTEMIK, bukan tambal per halaman. Ukuran masalah saat ditulis:
   258 titik white-space:nowrap tetapi hanya 65 text-overflow:ellipsis, dan 179 di antaranya
   nowrap TANPA ellipsis di inline style yang sama -> itulah teks yang meluber & mendorong tetangganya.
   Catatan teknis: selektor [style*="nowrap"] AMAN di sini karena nilainya statis di template
   (beda dari kasus #98 yang dipasang runtime lewat CSSOM). */
/* A. flex-item boleh menyusut; tombol & input JANGAN ikut mengecil */
.flex > *{min-width:0}
.flex > button,.flex > .preset,.flex > .accbtn,.flex > input,.flex > select,.flex > .seg,.flex > .segbtn{flex-shrink:0}
/* B. nowrap tanpa ellipsis -> dipotong rapi. Dibatasi ke pembawa TEKS (td/th/span/b/small/label)
      supaya tidak ada dropdown/menu absolut yang ikut terpotong oleh overflow:hidden. */
td[style*="nowrap"],th[style*="nowrap"],span[style*="nowrap"],b[style*="nowrap"],small[style*="nowrap"],label[style*="nowrap"]{
  overflow:hidden;text-overflow:ellipsis;max-width:100%}
/* C. chip/pill panjang dipotong, tidak boleh mendorong layout */
.chip,.pill{max-width:min(100%,24ch);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
/* D. baris DI DALAM kartu rapat (permintaan: <=1.3); jarak antar-section tetap lewat margin */
.kpi,.statcard,.chip,.pill,.tag{line-height:var(--lh-tight,1.2)}
/* ===== DIAGNOSA UI/UX 30 Jul 2026 — dua temuan yang paling murah diperbaiki =====
   (1) SELURUH aplikasi cuma punya SATU aturan :disabled. Akibatnya tombol yang sedang mati
       tampak sama seperti yang hidup -> pengguna mengklik, tidak terjadi apa-apa, dan menyimpulkan
       "form-nya rusak". Itu pola keluhan yang sama dengan #98 (chip terlihat mati). Jadi keadaan
       nonaktif sekarang selalu terlihat, di semua kontrol, di semua tema.
   (2) 325 tombol memakai padding 1-2px (mini). Di layar sentuh tingginya ~20px, jauh di bawah
       anjuran 44px, dan itu tombol-tombol aksi di dalam tabel. Diperbesar HANYA di perangkat
       sentuh, jadi kerapatan tampilan desktop tidak berubah.
   (2b) DINAIKKAN 32 -> 44px pada 23 Sep 2026. Angka 32 dulu adalah kemajuan (dari ~20px), tetapi
       karena ber-!important dan letaknya LEBIH BELAKANG daripada aturan 44px di media 640px,
       ia berubah peran: dari yang membesarkan jadi yang MENAHAN. Terukur di 375px — tombol
       .preset ber-padding:2px berhenti di 32px sementara yang ber-padding:3px lolos 44px.
       Perbaikan Juli yang membatalkan kebijakan September; sekarang keduanya sepakat 44px.
   CATATAN: selector [style*=..] di bawah ini melanggar larangan perf yang ditulis di blok
       tipografi HP (insiden 30 Jul). Tidak dicabut hari ini karena ia masih satu-satunya yang
       menjangkau <button>/<a> TANPA kelas .preset; penggantinya perlu sapuan tersendiri. */
button:disabled,button[disabled],.preset:disabled,.accbtn:disabled,input:disabled,select:disabled,textarea:disabled,[aria-disabled="true"]{
  opacity:.48;cursor:not-allowed;box-shadow:none}
button:disabled:hover,.preset:disabled:hover,.accbtn:disabled:hover,[aria-disabled="true"]:hover{
  transform:none;filter:none;box-shadow:none}
input:disabled,select:disabled,textarea:disabled{background:var(--panel2,var(--panel));color:var(--mut)}
@media (pointer:coarse){
  button[style*="padding:1px"],button[style*="padding:2px"],
  .preset[style*="padding:1px"],.preset[style*="padding:2px"],
  a[style*="padding:1px"],a[style*="padding:2px"]{
    min-height:44px!important;padding-left:10px!important;padding-right:10px!important;
    display:inline-flex!important;align-items:center;justify-content:center}
  .tab,.preset,button{min-height:30px}
}
/* rapat DI DALAM kelompok: beri leading konsisten utk teks kecil yg belum set eksplisit */
.sub-t{line-height:var(--lh-snug)}
.small:not([style*="line-height"]){line-height:var(--lh-snug)}
.muted.small:not([style*="line-height"]),.small.muted:not([style*="line-height"]){line-height:var(--lh-snug)}
.panel p:not([style*="line-height"]){line-height:var(--lh-normal)}
/* label kategori kecil-uppercase (ala La Cabra) — opt-in */
.sec-label{font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;color:var(--mut,#8b93a1);font-weight:700}
/* utilitas truncate utk judul di baris flex sempit (dipakai bertahap) */
.trunc{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* GRO 360 — baris perkara menua */
.grsrow{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:10px;margin-top:6px;background:rgba(255,255,255,.025)}
.grsumur{flex:0 0 46px;text-align:center;line-height:1}.grsumur b{display:block;font-size:20px;font-weight:800;letter-spacing:-.02em}.grsumur span{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--label-3)}
@media(max-width:640px){.grsrow{flex-wrap:wrap}.grsrow>.flex{flex-basis:100%;justify-content:flex-start!important}}
/* Kartu pelamar B — baris pertanyaan wawancara */
.auq{display:flex;align-items:flex-start;gap:9px;padding:7px 8px;border-radius:9px;margin-top:4px;background:rgba(255,255,255,.025)}
.auq.on .auqt{color:var(--label-3);text-decoration:line-through;text-decoration-color:var(--separator-strong)}
.auqk{flex:0 0 22px;width:22px;height:22px;border-radius:6px;border:1.5px solid var(--separator-strong);background:transparent;color:var(--ok);display:grid;place-items:center;cursor:pointer;margin-top:1px}
.auq.on .auqk{border-color:var(--ok);background:var(--ok-soft)}
.auqt{flex:1;min-width:0;font-size:12.5px;line-height:1.55}
.auqc{flex:0 0 auto;border:0;background:transparent;color:var(--label-3);cursor:pointer;padding:2px 4px;border-radius:6px}.auqc:hover{color:var(--label);background:rgba(255,255,255,.06)}
.auLain>summary{list-style:none;cursor:pointer}.auLain>summary::-webkit-details-marker{display:none}.auLain>summary .auhead{margin-bottom:0;border-bottom:0;padding-bottom:0}
.auLain[open]>summary .auhead{margin-bottom:10px;border-bottom:1px solid var(--separator);padding-bottom:7px}
/* #139 sengaja mengecualikan .wideprofile karena #modalbody-nya columns:2 300px. Di <=640px lebar
   layar tak pernah cukup untuk dua kolom 300px, jadi kolomnya sudah runtuh sendiri -- aman diberi
   sheet satu-scroller yang sama: judul & tombol tetap terlihat saat keyboard HP terbuka. */
@media(max-width:640px){
 #modalov .modalbox.wideprofile{display:flex;flex-direction:column;max-height:100%;overflow:visible;padding-bottom:0}
 #modalov .modalbox.wideprofile>#modalbody{columns:auto!important;flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
 #modalov .modalbox.wideprofile>#mfoot{flex:0 0 auto;position:static;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}
}
/* ============================================================
   TOOLTIP GLOBAL (Derry 19 Sep: "kalo di hover muncul dong ini tombol apa")
   Ada 87 tombol IKON-SAJA di app ini dan semuanya sudah ber-title; yang kurang
   cuma penyajiannya. Tooltip bawaan peramban muncul ~1 detik, abu-abu, dan tak
   bisa ditata. Ini memakai ULANG title yang sudah ada -- jadi tak ada satu pun
   tombol yang perlu disentuh, dan tombol ikon BARU otomatis ikut dapat.
   Diposisikan FIXED (bukan ::after pada tombolnya) supaya tidak terpotong oleh
   #modalbody yang overflow-y:auto maupun panel ber-overflow lain.
   ============================================================ */
#tipx{position:fixed;z-index:400;display:none;pointer-events:none;
  background:var(--panel2,#2F251C);color:var(--txt,#F6F1E7);border:1px solid var(--separator-strong,var(--line));
  border-radius:9px;padding:6px 10px;font-size:12px;font-weight:600;line-height:1.4;
  max-width:230px;width:max-content;box-shadow:0 10px 26px rgba(0,0,0,.45);opacity:1}
/* opacity:1 DINYATAKAN di aturan dasar, bukan diserahkan ke akhir animasi.
   Kalau animasi tak pernah selesai (jam dibekukan, tab throttled, animasi
   dimatikan mesin render), tooltip akan tersangkut di opacity 0 dan tak
   terlihat sama sekali -- ketahuan saat uji headless. */
@media(prefers-reduced-motion:no-preference){#tipx{animation:tipIn .11s ease-out}}
@keyframes tipIn{from{transform:translateY(3px)}to{transform:none}}
/* Animasi sengaja TIDAK menyentuh opacity. Kalau opasitas ikut dianimasikan, setiap
   lingkungan yang membekukan/mematikan animasi (mesin render headless, tab yang
   di-throttle, kebijakan hemat daya) meninggalkan tooltip di opacity 0 -- ada tapi
   tak terlihat. Terbukti saat uji: display=block, ukuran benar, opacity 0. */
@media(pointer:coarse){#tipx{display:none!important}} /* di layar sentuh tak ada hover */
/* ============================================================================
   #139 (Theola, 23 Agu 2026) — bottom-sheet HP: satu scroller saja.
   Dulu: .modalbox dipatok max-height:90vh, sedangkan _modalVp() menyetel #modalov
   = visualViewport (±400px saat keyboard buka). Sheet 720px di dalam overlay 400px,
   dengan align-items:flex-end + overflow → luapan ke ATAS tak bisa dijangkau scroll:
   judul, tombol X, pegangan seret, dan field Section hilang & tak bisa dikembalikan.
   Sekaligus #mfoot yang sticky menempel ke dasar SCROLLPORT (di bawah layar), bukan
   ke dasar layar → bar Batal/Simpan mendarat di tengah sheet.
   Pola benarnya sudah dipakai desktop sejak #98; mobile-nya yang dikecualikan.
   ============================================================================ */
/* bawaan: pegangan hanya ada di HP. WAJIB ditulis SEBELUM blok ≤640px di bawah —
   spesifisitasnya identik, jadi kalau ditaruh sesudahnya ia yang menang dan pegangan tak pernah muncul. */
#modalov .modalbox>.mgrab{display:none}
@media(max-width:640px){
 #modalov{overflow:hidden}
 /* :not(.wideprofile) WAJIB — #modalbody-nya columns:2 300px; begitu tingginya dibatasi
    kolomnya meluber ke SAMPING. Pengecualian yang sama sudah ada utk desktop di #98. */
 #modalov .modalbox:not(.wideprofile){display:flex;flex-direction:column;max-height:100%;overflow:visible;padding-bottom:0}
 #modalov .modalbox:not(.wideprofile)>#modalbody{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
 #modalov .modalbox:not(.wideprofile)>#mfoot{flex:0 0 auto;position:static;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}
 /* pegangan seret: dulu ::before (pseudo-element — tak bisa dipegang jari). Sekarang elemen nyata
    dengan target sentuh >=30px; ::before dimatikan supaya pilnya tidak dobel. */
 #modalov .modalbox::before{display:none}
 #modalov .modalbox>.mgrab{display:block;flex:0 0 auto;height:30px;margin:-14px -22px 2px;touch-action:none;cursor:grab;position:relative}
 #modalov .modalbox>.mgrab::after{content:'';position:absolute;left:50%;top:12px;width:38px;height:5px;margin-left:-19px;border-radius:3px;background:var(--separator)}
}
/* #139 B5: #lbDetail.lbsheet (z-index 60) ketiban #botnav (z-index 70, tinggi ~65px + safe-area) —
   yang tertimbun justru tombol Hapus, yang sengaja dibuat flex-basis:100% agar jadi baris terbawah. */
@media(max-width:820px){
 #lbDetail.lbsheet{z-index:80;max-height:76vh;max-height:76dvh;overscroll-behavior:contain;
   padding-bottom:calc(78px + env(safe-area-inset-bottom,0px))}
}


:root{--logo-w:url(data:image/png;base64,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);--logo-b:url(data:image/png;base64,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)}.mjlogo{background-repeat:no-repeat;background-position:left center;background-size:contain;background-image:var(--logo-w)}html[data-theme="light"] .mjlogo{background-image:var(--logo-b)}.mjlogo.hdr{height:58px;width:86px}.mjlogo.lg{height:90px;width:133px;background-position:center;margin:2px auto 4px}

.qztab-bar{display:flex;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin:2px 0 12px}
/* ===== HUB REL SAMPING (Opsi C, pilihan Derry 20 Agu 2026) =====
   Hub `penj` punya 11 tab; hub lain 3-5. Sebelas pil setara membungkus 2 baris tanpa
   hierarki -> "UI nya pusing". Rel samping tak pernah membungkus, judul grup gratis,
   posisi sekarang terlihat, dan tab ke-12 masuk grupnya bukan menambah baris.
   Bisa DILIPAT supaya tabel lebar dapat lebarnya kembali (itu satu-satunya kelemahan
   layout ini), pilihannya diingat per hub. <=820px: rel jadi menu buka-tutup. */
.hubwrap{display:flex;gap:20px;align-items:flex-start}
/* Overview Opsi A (Derry 21 Agu): pintu depan tanpa kotak — ruang & garis rambut sebagai pemisah */
.ovtop{padding:2px 0 14px}
.ovsal{margin-top:3px;font-size:13px;color:var(--mut)}
.ovpace{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;margin-bottom:16px}
.ovpace-l{font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--mut);display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.ovpace-lag{font-weight:400;letter-spacing:0;text-transform:none;font-size:12px;color:var(--yellow)}
.ovpace-b{font-size:32px;line-height:1.05;letter-spacing:-.02em;margin:5px 0 4px;font-variant-numeric:tabular-nums}
.ovpace-s{font-size:13px;color:var(--mut)}
.ovpace-m{font-size:12px;color:var(--mut);margin-top:5px}
.ovfold{margin:14px 0 4px;font-size:12px;color:var(--mut);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.ovfold:hover{color:var(--acc)}
@media(max-width:640px){.ovpace-b{font-size:27px}}
/* Absensi B+C (Derry 21 Agu): kekecualian di atas, papan kebiasaan saat rentang panjang */
.abx-h{font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--acc);margin:10px 0 7px}
.abx{display:flex;gap:11px;padding:9px 0;border-bottom:1px solid var(--line)}
.abx-b{width:3px;border-radius:2px;flex:none}
.abx-t{flex:1;min-width:0}
.abx-n{display:block;font-size:13px}
.abx-k{display:block;font-size:12px;color:var(--mut);margin-top:2px;line-height:1.5}
.abx-a{align-self:center;white-space:nowrap}
.abx-ok{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);margin-top:11px;padding-top:10px;font-size:12px;color:var(--mut);cursor:pointer}
.abx-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ok,#3da56a);margin-right:7px;vertical-align:1px}
.abx-r{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);font-size:12px}
.abx-rn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.abx-rt{font-variant-numeric:tabular-nums;color:var(--mut);white-space:nowrap}
.abx-full{margin-top:12px;font-size:12px;color:var(--mut);cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.abx-full:hover{color:var(--acc)}
.abg-row{display:flex;align-items:center;margin-bottom:4px}
.abg-l{width:140px;flex:none;padding-right:8px;font-size:12px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:sticky;left:0;z-index:1;background:var(--panel)}
.abg-cs{display:flex;gap:3px}
.abg-c{width:14px;height:18px;border-radius:3px;display:block}
.abg-c.ok{background:var(--ok);opacity:.55}
.abg-c.telat{background:var(--yellow)}
.abg-c.out,.abg-c.abs{background:var(--red)}
.abg-c.off{background:transparent;box-shadow:inset 0 0 0 1px var(--line)}
.abg-lg i.abg-c{width:11px;height:11px;flex:none}
.abg-tick>span{width:14px;flex:none;font-size:11px;color:var(--mut);white-space:nowrap;overflow:visible}
.abg-s{margin-left:11px;font-size:12px;color:var(--yellow);white-space:nowrap}
.abg-lg{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px}
.abg-lg>span{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--mut)}
.abg-lg i{border-radius:2px;display:inline-block}
@media(max-width:640px){.abg-l{width:104px}.abx-rt{font-size:12px}}
/* pita kalender outage (Opsi 2, Derry 20 Agu): store x tanggal, 1 kotak = 1 hari */
.outd-tick{margin-bottom:5px}
.outd-tick>span{width:11px;flex:none;font-size:11px;color:var(--mut);white-space:nowrap;overflow:visible}
.outd-row{display:flex;align-items:center;margin-bottom:3px}
.outd-lbl{width:112px;flex:none;padding-right:8px;font-size:12px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:sticky;left:0;z-index:1;background:var(--panel)}
.outd-cells{display:flex;gap:2px}
.outd-c{width:11px;height:15px;border-radius:2px;display:flex;align-items:center;justify-content:center}
.outd-c>i{width:7px;height:7px;border-radius:2px;display:block}
.outd-c.on{cursor:pointer}
.outd-c.on:hover{outline:1px solid var(--txt);outline-offset:1px}
.outd-sum{margin-left:10px;font-size:12px;color:var(--mut);white-space:nowrap}
.outd-lgs{display:flex;gap:14px;flex-wrap:wrap;margin-top:11px}
.outd-lg{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--mut)}
.outd-lg>i{width:10px;height:10px;border-radius:2px;display:flex;align-items:center;justify-content:center;flex:none}
.outd-lg>i>b{width:5px;height:5px;border-radius:1px;display:block}
.outd-det{border-left:2px solid var(--line);padding:7px 0 7px 11px;margin-top:11px;font-size:12px}
.hubbody{flex:1;min-width:0}
.hubrail{width:188px;flex:none;position:sticky;top:6px;border-right:1px solid var(--line);padding-right:14px}
.hubrail-top{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--mut);margin:0 0 10px}
.hubrail-x{background:none;border:0;padding:2px;min-height:0;line-height:1;color:var(--mut);cursor:pointer;border-radius:4px}
.hubrail-x:hover{color:var(--acc)}
.hubrail-h{font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--mut);margin:14px 0 3px;padding-left:11px}
.hubrail-g:first-child .hubrail-h{margin-top:0}
.hubrail-i{display:block;width:100%;text-align:left;background:none;border:0;border-left:2px solid transparent;border-radius:0;padding:5px 6px 5px 9px;min-height:0;font:inherit;font-size:13px;line-height:1.35;color:inherit;cursor:pointer}
.hubrail-i:hover{color:var(--acc);background:var(--panel2)}
.hubrail-i.pri{color:var(--acc);border-left-color:var(--acc);background:none;font-weight:500}
.hubmenu{display:none;margin-bottom:12px}
.hubwrap.railoff .hubrail{display:none}
.hubwrap.railoff .hubmenu{display:inline-flex}
@media(max-width:820px){
 .hubwrap{display:block}
 .hubrail{width:auto;position:static;border-right:0;border-bottom:1px solid var(--line);padding:0 0 8px;margin:0 0 12px;display:none}
 .hubwrap .hubmenu{display:inline-flex}
 .hubwrap.railon .hubrail{display:block}
 .hubrail-top .hubrail-x{display:none}
 .hubrail-h{margin:10px 0 3px}
}
.qztab-t{background:none;border:0;padding:0 0 8px;font:inherit;font-size:14px;color:var(--mut);cursor:pointer;box-shadow:none;border-radius:0}
.qztab-t:hover{color:var(--txt)}.qztab-t{display:inline-flex;align-items:center;gap:6px}.qztab-t .luc{opacity:.75}.qztab-t.on .luc{opacity:1}.qztab-sep{width:1px;align-self:stretch;background:var(--line);margin:0 4px 8px}
.qztab-t.on{color:var(--txt);box-shadow:inset 0 -2px 0 var(--acc)}
.qzchip{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:3px 9px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);cursor:pointer}
.qzchip:hover{border-color:var(--acc)}
.qztab thead th{font-size:12px;color:var(--mut);text-align:left;font-weight:600;padding:5px 8px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);z-index:1}
.qztab td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top;font-size:13px}
.qztab tr.qzrow{cursor:pointer}
.qztab tr.qzrow:hover td{background:var(--surface-2)}
.qztab tr.qzrow.on td{background:rgba(217,124,96,.12)}


/* Dock auto-reveal */
#ccHot{position:fixed;left:0;top:0;bottom:0;width:14px;z-index:58;display:none}
#ccHandle{position:fixed;left:0;top:50%;transform:translateY(-50%);z-index:59;width:22px;height:58px;display:none;align-items:center;justify-content:center;cursor:pointer;background:var(--surface,var(--panel,#171A20));border:1px solid var(--line,rgba(255,255,255,.1));border-left:0;border-radius:0 12px 12px 0;color:var(--label-2,var(--mut,#9AA1AC));box-shadow:var(--sh-sm,0 2px 8px rgba(0,0,0,.3))}
#ccHandle:hover{color:var(--accent,#D97C60)}
@media(min-width:1025px){body.sidehide #ccHot{display:block}body.sidehide #ccHandle{display:flex}body.sidehide #side.cc-peek{transform:translateX(0)!important;z-index:62;box-shadow:0 18px 50px -8px rgba(0,0,0,.55)}}
/* Judul "untuk apa" (kicker) */
.page>.cc-kicker{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--accent,var(--acc,#D97C60));margin:0 0 4px}
/* Command Palette */
#ccPalOv{position:fixed;inset:0;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:200;display:none;align-items:flex-start;justify-content:center;padding-top:12vh}
#ccPalOv.on{display:flex}
#ccPal{width:600px;max-width:92vw;background:var(--surface,var(--panel,#171A20));border:1px solid var(--line-2,var(--line,rgba(255,255,255,.14)));border-radius:18px;box-shadow:0 24px 70px -12px rgba(0,0,0,.6);overflow:hidden;font-family:inherit;animation:ccPalIn .18s cubic-bezier(.16,1,.3,1) both}
@keyframes ccPalIn{from{opacity:0;transform:scale(.97) translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){#ccPal{animation:none}}
#ccPal .cc-h{display:flex;align-items:center;gap:11px;padding:15px 17px;border-bottom:1px solid var(--line,rgba(255,255,255,.1))}
#ccPal .cc-h svg{width:19px;height:19px;flex:0 0 auto;color:var(--label-3,var(--mut,#9AA1AC))}
#ccPal input{flex:1;border:0;background:transparent;color:var(--label,var(--txt,#F2F4F6));font:inherit;font-size:15px;font-weight:500;outline:none}
#ccPal .cc-kbd{font-size:12px;font-weight:700;color:var(--label-3,var(--mut,#9AA1AC));border:1px solid var(--line,rgba(255,255,255,.1));padding:2px 7px;border-radius:6px}
#ccPalList{max-height:54vh;overflow:auto;padding:7px}
#ccPalList button{display:flex;align-items:center;gap:12px;width:100%;padding:9px 13px;border:0;border-radius:11px;background:transparent;cursor:pointer;text-align:left;color:var(--label,var(--txt,#F2F4F6));font:inherit}
#ccPalList button:hover,#ccPalList button.cc-sel{background:var(--surface-2,var(--panel2,#1E222A))}
#ccPalList .cc-ic{width:30px;height:30px;border-radius:9px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;background:var(--surface-2,var(--panel2,#1E222A));color:var(--accent,#D97C60);font-size:15px}
#ccPalList .cc-tw{flex:1;min-width:0}
#ccPalList .cc-t{display:block;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#ccPalList .cc-p{display:block;font-size:12px;color:var(--label-3,var(--mut,#9AA1AC));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}
#ccPalList .cc-g{font-size:12px;font-weight:700;color:var(--label-3,var(--mut,#9AA1AC));background:var(--surface-2,var(--panel2,#1E222A));padding:3px 8px;border-radius:99px;flex:0 0 auto}
#ccPal .cc-foot{display:flex;gap:16px;padding:10px 17px;border-top:1px solid var(--line,rgba(255,255,255,.1));font-size:12px;font-weight:600;color:var(--label-3,var(--mut,#9AA1AC))}
#ccPal .cc-empty{padding:26px;text-align:center;color:var(--label-3,var(--mut,#9AA1AC));font-size:13px;font-weight:500}
/* Panel Konteks kanan */
#ccCtx{position:fixed;right:0;top:0;bottom:0;width:312px;overflow-y:auto;padding:16px 15px 72px;border-left:1px solid var(--line,rgba(255,255,255,.1));background:var(--bg,var(--panel,#0d0f0e));z-index:40;display:none}
#ccCtx .cc-ctt{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--label-3,var(--mut,#9AA1AC));margin:16px 2px 8px}
#ccCtx .cc-today{font-size:13px;font-weight:700;color:var(--label,var(--txt,#F2F4F6))}
#ccCtx .cc-qa{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px 11px;border:1px solid var(--line,rgba(255,255,255,.1));border-radius:12px;background:var(--surface,var(--panel2,#1E222A));cursor:pointer;margin-bottom:7px;color:var(--label,var(--txt,#F2F4F6));font:inherit}
#ccCtx .cc-qa:hover{border-color:var(--accent,var(--acc,#D97C60))}
#ccCtx .cc-qa .qi{width:32px;height:32px;border-radius:9px;background:var(--accent-soft,rgba(217,124,96,.14));color:var(--accent,var(--acc,#D97C60));display:flex;align-items:center;justify-content:center;flex:0 0 auto}
#ccCtx .cc-qa .qt{flex:1;min-width:0}#ccCtx .cc-qa .qt b{font-size:13px;font-weight:700;display:block}#ccCtx .cc-qa .qt span{font-size:12px;color:var(--label-3,var(--mut,#9AA1AC))}
#ccCtx .cc-qa .qc{color:var(--label-3,var(--mut,#9AA1AC));flex:0 0 auto}
#ccCtx .panel{margin-bottom:10px;border-left-width:1px!important;padding:11px 12px}
#ccCtx h3{font-size:13px;margin-bottom:6px}
#ccCtx table{font-size:12px}#ccCtx .scrollx{overflow-x:auto}#ccCtx .litem{padding:6px 0}
#ccCtx .cc-cthead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 4px}
#ccCtx .cc-collapse{width:26px;height:26px;border-radius:7px;border:1px solid var(--line,rgba(255,255,255,.1));background:var(--surface,var(--panel2,#1E222A));color:var(--label-2,var(--mut,#9AA1AC));cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:15px;line-height:1}
#ccCtx .cc-collapse:hover{color:var(--accent,var(--acc,#D97C60))}
/* Event ListRow & Ulang Tahun — gaya mockup (badge tanggal + avatar), bukan tabel */
#ccCtx .cc-sechead{display:flex;align-items:center;justify-content:space-between;margin:16px 2px 9px}
#ccCtx .cc-sechead .cc-ctt{margin:0}
#ccCtx .cc-seclink{font-size:12px;font-weight:700;color:var(--accent,var(--acc,#D97C60));cursor:pointer;text-transform:none;letter-spacing:0}
#ccCtx .cc-seclink:hover{text-decoration:underline}
#ccCtx .cc-evrow{display:flex;gap:12px;padding:11px 12px;border-radius:13px;background:var(--surface,var(--panel2,#1E222A));border:1px solid var(--line,rgba(255,255,255,.1));margin-bottom:9px}
#ccCtx .cc-evdate{flex:0 0 auto;width:42px;text-align:center}
#ccCtx .cc-evmon{display:block;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--accent,var(--acc,#D97C60))}
#ccCtx .cc-evday{display:block;font-size:20px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--label,var(--txt,#F2F4F6))}
#ccCtx .cc-evbody{flex:1;min-width:0;border-left:1px solid var(--line,rgba(255,255,255,.1));padding-left:12px}
#ccCtx .cc-evt{font-size:13px;font-weight:700;line-height:1.35;color:var(--label,var(--txt,#F2F4F6))}
#ccCtx .cc-evm{font-size:12px;color:var(--label-3,var(--mut,#9AA1AC));font-weight:500;margin-top:2px}
#ccCtx .cc-bday{display:flex;align-items:center;gap:11px;margin-bottom:9px}
#ccCtx .cc-bavt{width:34px;height:34px;border-radius:50%;flex:0 0 auto;background:linear-gradient(135deg,#9B7ED4,#5A9BD4);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:12px}
#ccCtx .cc-bbody{flex:1;min-width:0}
#ccCtx .cc-bn{font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--label,var(--txt,#F2F4F6))}
#ccCtx .cc-bm{font-size:12px;color:var(--label-3,var(--mut,#9AA1AC));font-weight:500}
#ccCtxHandle{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:59;width:22px;height:58px;display:none;align-items:center;justify-content:center;cursor:pointer;background:var(--surface,var(--panel,#171A20));border:1px solid var(--line,rgba(255,255,255,.1));border-right:0;border-radius:12px 0 0 12px;color:var(--label-2,var(--mut,#9AA1AC));box-shadow:var(--sh-sm,0 2px 8px rgba(0,0,0,.3))}
#ccCtxHandle:hover{color:var(--accent,#D97C60)}
@media(min-width:1200px){
  #ccCtx{display:block;transition:transform .3s cubic-bezier(.16,1,.3,1)}
  body.cc-hasctx:not(.cc-ctxhide) #main{margin-right:312px}
  body.cc-ctxhide #ccCtx{transform:translateX(100%)}
  body.cc-ctxhide #ccCtxHandle{display:flex}
  body.cc-hasctx:not(.cc-ctxhide) #quickBtns{display:none!important}
  /* Halaman tabel lebar (Temuan/Audisi/Meeting): lepas rail konteks → tabel pakai lebar penuh */
  body:has(#tmBody) #main,body:has(#auBody) #main,body:has(#mtgWrap) #main,body:has(#compWrap) #main{margin-right:0}
  body:has(#tmBody) #ccCtx,body:has(#auBody) #ccCtx,body:has(#mtgWrap) #ccCtx,body:has(#compWrap) #ccCtx{display:none}
  body:has(#tmBody) #ccCtxHandle,body:has(#auBody) #ccCtxHandle,body:has(#mtgWrap) #ccCtxHandle,body:has(#compWrap) #ccCtxHandle{display:none}
}
@media(prefers-reduced-motion:reduce){#ccCtx{transition:none}}
