/* R141 web141dokumen - penampil PDF (bilah alat, cari, thumbnail, panel bertumpuk, bandingkan), kode (pengodean,
   warna sintaks), file tanpa pratinjau, dan halaman Persetujuan di dalam aplikasi. Dimuat sesudah web140.css.
   Semua kelas baru berakhiran 141; tidak ada aturan yang menyembunyikan kontrol lama kecuali chip "N baris"
   (.lines132p), yang teksnya ikut di chip pengodean. */
:root{--select141:#E6F2FC}
:root[data-theme=dark]{--select141:#13283A}

/* ---------- PDF: bilah alat satu pil seperti papan */
body:not(.console-page) #dialog .preview-tools.pdf141{align-self:center;flex-wrap:wrap;justify-content:center;gap:0;min-height:44px;box-sizing:border-box;padding:0 4px;border-radius:12px;background:var(--stage-2)}
body:not(.console-page) #dialog .preview-tools.pdf141 .preview-pager{min-height:44px;padding:0 4px;border-radius:0;background:transparent;gap:4px}
body:not(.console-page) #dialog .preview-tools.pdf141 .preview-pager+.preview-pager::before{content:"";width:1px;height:22px;margin-right:4px;background:var(--stage-line)}
body:not(.console-page) #dialog .preview-tools.pdf141 label{gap:6px;color:var(--stage-ink)}
body:not(.console-page) #dialog .preview-tools.pdf141 #pdf-page{width:40px;height:30px;min-height:30px;box-sizing:border-box;padding:0 4px;border:1px solid var(--stage-line);border-radius:7px;background:transparent;color:var(--stage-ink);font-size:13px;text-align:center;-moz-appearance:textfield;appearance:textfield}
body:not(.console-page) #dialog .preview-tools.pdf141 #pdf-page::-webkit-outer-spin-button,
body:not(.console-page) #dialog .preview-tools.pdf141 #pdf-page::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
body:not(.console-page) #dialog .preview-tools.pdf141 #pdf-in,
body:not(.console-page) #dialog .preview-tools.pdf141 #pdf-out{width:36px;height:36px;min-height:36px;padding:0;border-radius:999px;font-size:16px}
body:not(.console-page) #dialog .preview-tools.pdf141 #pdf-zoom{min-width:44px;text-align:center}
body:not(.console-page) #dialog .preview-tools.pdf141 .find141{width:36px;height:36px;min-height:36px;padding:0;border-radius:999px;display:flex;align-items:center;justify-content:center}
body:not(.console-page) #dialog .preview-tools.pdf141 .find141[aria-expanded=true]{background:rgba(66,188,250,.16);color:var(--stage-accent)}
body:not(.console-page) #dialog .findbar141{align-self:center;display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:40px;max-width:100%;box-sizing:border-box;padding:4px 6px 4px 8px;border-radius:12px;background:var(--stage-2);color:var(--stage-ink);font-size:13px}
body:not(.console-page) #dialog .findbar141 input{width:220px;max-width:52vw;height:32px;box-sizing:border-box;padding:0 10px;border:1px solid var(--stage-line);border-radius:8px;background:transparent;color:var(--stage-ink);font:inherit}
body:not(.console-page) #dialog .findbar141 input::placeholder{color:var(--stage-muted)}
body:not(.console-page) #dialog .findbar141 .findcount141{min-width:120px;color:var(--stage-muted)}
body:not(.console-page) #dialog .findbar141 .btn{height:32px;min-height:32px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--stage-ink);display:inline-flex;align-items:center}
body:not(.console-page) #dialog .findbar141 .btn:disabled{color:var(--stage-muted)}

/* ---------- PDF: kolom thumbnail (virtual) dan sorotan hasil cari */
body:not(.console-page) #dialog #preview-content.pdf141{display:grid;grid-template-columns:72px minmax(0,1fr);gap:0 18px;align-items:start}
body:not(.console-page) #dialog #preview-content.pdf141>.pdf-stage,
body:not(.console-page) #dialog #preview-content.pdf141>.pdf-text{grid-column:2}
body:not(.console-page) #dialog #preview-content.pdf141>.thumbs141{grid-column:1;grid-row:1/span 2}
body:not(.console-page) #dialog .thumbs141{position:sticky;top:0;height:min(68vh,640px);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}
body:not(.console-page) #dialog .thumbs141 .track141{position:relative;width:64px}
body:not(.console-page) #dialog .thumbs141 .th141{position:absolute;left:0;width:64px;height:96px;box-sizing:border-box;padding:0;border:0;background:transparent;color:var(--stage-muted);font-size:12px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer}
body:not(.console-page) #dialog .thumbs141 .frame141{width:56px;height:74px;border-radius:4px;background:#FFFFFF;opacity:.7;display:flex;align-items:center;justify-content:center;overflow:hidden}
body:not(.console-page) #dialog .thumbs141 .cv141{display:block;max-width:100%;max-height:100%}
body:not(.console-page) #dialog .thumbs141 .th141[aria-current=page]{color:var(--stage-ink);font-weight:700}
body:not(.console-page) #dialog .thumbs141 .th141[aria-current=page] .frame141{opacity:1;box-shadow:0 0 0 2px var(--stage-accent)}
body:not(.console-page) #dialog .thumbs141 .th141:focus-visible{outline:2px solid var(--stage-accent);outline-offset:2px;border-radius:6px}
body:not(.console-page) #dialog #preview-content .pdf-stage{position:relative}
body:not(.console-page) #dialog .hits141{position:absolute;pointer-events:none}
body:not(.console-page) #dialog .hits141 .hit141{position:absolute;padding:0;border-radius:2px;background:rgba(255,227,138,.6);mix-blend-mode:multiply}
@media (max-width:760px){
 body:not(.console-page) #dialog #preview-content.pdf141{grid-template-columns:minmax(0,1fr)}
 body:not(.console-page) #dialog #preview-content.pdf141>.thumbs141{display:none}
 body:not(.console-page) #dialog #preview-content.pdf141>.pdf-stage,
 body:not(.console-page) #dialog #preview-content.pdf141>.pdf-text{grid-column:1}
}

/* ---------- PDF: panel kanan bertumpuk (persetujuan, komentar, riwayat versi, lipatan Detail file) */
body:not(.console-page) #dialog .preview-details134.stacked141{gap:16px}
body:not(.console-page) #dialog .stack141{display:flex;flex-direction:column;gap:16px;font-size:13px;line-height:1.45}
body:not(.console-page) #dialog .stack141 h2{margin:0;font-size:14px;font-weight:700;color:var(--ink)}
body:not(.console-page) #dialog .stack141 .msg141:empty,
body:not(.console-page) #dialog .stack141 .appr141:empty{display:none}
body:not(.console-page) #dialog .stack141 .msg141 p{margin:0;padding:8px 12px;border-radius:10px}
body:not(.console-page) #dialog .stack141 .msg141 .ok141{background:var(--ok);color:var(--ok-ink)}
body:not(.console-page) #dialog .stack141 .err141,
body:not(.console-page) #dialog .cmp141 .err141{background:var(--danger);color:var(--danger-ink);padding:8px 12px;border-radius:10px;margin:0}
body:not(.console-page) #dialog .card141{padding:14px;border-radius:16px;display:flex;flex-direction:column;gap:10px}
body:not(.console-page) #dialog .card141 p{margin:0}
body:not(.console-page) #dialog .card141 h2{color:inherit}
body:not(.console-page) #dialog .card141.warn141{background:var(--warn);color:var(--warn-ink)}
body:not(.console-page) #dialog .card141.info141{background:var(--surface-2);color:var(--ink)}
body:not(.console-page) #dialog .stack141 .btns141{display:flex;flex-wrap:wrap;gap:8px}
body:not(.console-page) #dialog .stack141 .btns141 .btn{flex:1 1 96px;height:38px;min-height:38px;margin:0;padding:0 8px;border-radius:999px;font-size:13px;font-weight:700;white-space:nowrap}
body:not(.console-page) #dialog .stack141 .decide141 .btns141 .btn{flex-basis:100%}
body:not(.console-page) #dialog .stack141 .btn.primary141{border:0;background:var(--accent);color:var(--on-accent)}
body:not(.console-page) #dialog .stack141 .btn.plain141{border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font-weight:600}
body:not(.console-page) #dialog .stack141 .decide141{display:flex;flex-direction:column;gap:10px}
body:not(.console-page) #dialog .stack141 .decide141 label{display:flex;flex-direction:column;gap:6px;font-weight:600}
body:not(.console-page) #dialog .stack141 textarea{box-sizing:border-box;width:100%;padding:10px 12px;border:1.5px solid var(--line-2);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;font-weight:400;resize:vertical}
body:not(.console-page) #dialog .cmts141{display:flex;flex-direction:column;gap:12px}
body:not(.console-page) #dialog .clist141{display:flex;flex-direction:column;gap:12px}
body:not(.console-page) #dialog .cmt141{display:flex;gap:10px;padding:0;border:0}
body:not(.console-page) #dialog .cmt141 .av141{width:32px;height:32px;flex:0 0 auto;border-radius:50%;background:var(--soft);color:var(--soft-ink);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}
body:not(.console-page) #dialog .cmt141>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
body:not(.console-page) #dialog .cmt141 b{font-weight:700}
body:not(.console-page) #dialog .cmt141 .cmeta141{color:var(--muted)}
body:not(.console-page) #dialog .cmt141 p{margin:0;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}
body:not(.console-page) #dialog .cmt141 .at141{color:var(--link)}
body:not(.console-page) #dialog .cmt141.done141 p{color:var(--muted)}
body:not(.console-page) #dialog .task141{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:var(--surface-2);color:var(--ink);cursor:pointer}
body:not(.console-page) #dialog .task141 input{width:16px;height:16px;margin:0;flex:0 0 auto;accent-color:var(--accent)}
body:not(.console-page) #dialog .cacts141{display:flex;gap:14px}
body:not(.console-page) #dialog :is(.stack141,.cmp141) .link141{margin:0;padding:0;border:0;background:none;color:var(--link);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
body:not(.console-page) #dialog :is(.stack141,.cmp141) .link141:disabled{color:var(--muted);cursor:default}
body:not(.console-page) #dialog .stack141 .chip141{display:inline-block;font-size:12px;font-weight:700;padding:2px 10px;border-radius:999px}
body:not(.console-page) #dialog .stack141 .chip141.ok141{background:var(--ok);color:var(--ok-ink)}
body:not(.console-page) #dialog :is(.stack141,.cmp141) .muted141{margin:0;color:var(--muted)}
body:not(.console-page) #dialog .replyform141{position:relative;display:flex;align-items:center;gap:8px;height:44px;box-sizing:border-box;padding:0 6px 0 14px;border:1px solid var(--line-2);border-radius:22px;background:var(--surface)}
body:not(.console-page) #dialog .replyform141 input{flex:1;min-width:0;height:100%;padding:0;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:13px}
body:not(.console-page) #dialog .replyform141:focus-within{border-color:var(--accent)}
body:not(.console-page) #dialog .replyform141 button[type=submit]{width:34px;height:34px;flex:0 0 auto;padding:0;border:0;border-radius:50%;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;cursor:pointer}
body:not(.console-page) #dialog .replyform141[aria-busy=true] button[type=submit]{opacity:.6}
body:not(.console-page) #dialog .mentions141{position:absolute;left:8px;right:8px;bottom:48px;z-index:3;margin:0;padding:4px;list-style:none;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 8px 24px var(--shadow)}
body:not(.console-page) #dialog .mentions141 button{width:100%;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
body:not(.console-page) #dialog .mentions141 button:hover,
body:not(.console-page) #dialog .mentions141 button:focus-visible{background:var(--surface-2)}
body:not(.console-page) #dialog .mentions141 .none141{padding:8px 10px;color:var(--muted)}
body:not(.console-page) #dialog .replyerr141{margin:0;color:var(--danger-ink)}
body:not(.console-page) #dialog .replyerr141:empty{display:none}
body:not(.console-page) #dialog .vers141{display:flex;flex-direction:column;gap:4px;padding-top:14px;border-top:1px solid var(--line)}
body:not(.console-page) #dialog .vers141 h2{margin-bottom:6px}
body:not(.console-page) #dialog .vrow141{min-height:52px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;border-top:1px solid var(--line)}
body:not(.console-page) #dialog .vlist141>.vrow141:first-child{border-top:0}
body:not(.console-page) #dialog .vnum141{width:28px;font-weight:700}
body:not(.console-page) #dialog .vmain141{flex:1;min-width:0;display:flex;flex-direction:column}
body:not(.console-page) #dialog .vt141{font-weight:600;overflow-wrap:anywhere}
body:not(.console-page) #dialog .vm141{color:var(--muted)}
body:not(.console-page) #dialog .vacts141{display:flex;flex-wrap:wrap;gap:4px 12px}
body:not(.console-page) #dialog .lform141{flex:1 1 100%;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:4px 0 10px}
body:not(.console-page) #dialog .lform141 input{flex:1 1 160px;min-width:0;height:34px;box-sizing:border-box;padding:0 10px;border:1.5px solid var(--line-2);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit}
body:not(.console-page) #dialog .lform141 .btn{height:34px;min-height:34px;margin:0;border-color:var(--line-2);background:var(--surface);color:var(--ink)}
body:not(.console-page) #dialog #preview-info134 .tabmsg141{margin:0 0 8px;padding:8px 12px;border-radius:10px;background:var(--ok);color:var(--ok-ink)}
body:not(.console-page) #dialog #preview-info134 .tabmsg141.err141{background:var(--danger);color:var(--danger-ink)}
body:not(.console-page) #dialog #preview-info134 .vlab141{display:inline-block;margin-left:4px;padding:1px 8px;border-radius:999px;background:var(--soft);color:var(--soft-ink);font-size:12px;font-weight:700}
body:not(.console-page) #dialog .more141{padding-top:14px;border-top:1px solid var(--line)}
body:not(.console-page) #dialog .more141>summary{cursor:pointer;font-size:14px;font-weight:700;color:var(--ink)}
body:not(.console-page) #dialog .more141[open]>summary{margin-bottom:12px}
body:not(.console-page) #dialog .more141 .preview-tabs134{margin-bottom:14px}

/* ---------- PDF: bandingkan teks */
body:not(.console-page) #dialog .preview-main134{position:relative}
body:not(.console-page) #dialog .cmp141{position:absolute;inset:0;z-index:4;box-sizing:border-box;padding:20px;overflow:auto;background:var(--stage);color:var(--stage-ink);display:flex;flex-direction:column;gap:10px}
body:not(.console-page) #dialog .cmphead141{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
body:not(.console-page) #dialog .cmphead141 h2{margin:0;font-size:16px;font-weight:700;color:var(--stage-ink)}
body:not(.console-page) #dialog .cmphead141 .btn{height:34px;min-height:34px;padding:0 16px;border:1px solid var(--stage-line);border-radius:999px;background:transparent;color:var(--stage-ink);font-size:13px;font-weight:600}
body:not(.console-page) #dialog .cmpnote141{margin:0;font-size:13px;color:var(--stage-muted)}
body:not(.console-page) #dialog .cmpbody141{display:flex;flex-direction:column;gap:1px;padding:12px;border:1px solid var(--stage-line);border-radius:14px;background:#0E1A26;font-size:13px}
body:not(.console-page) #dialog .cmpsum141{margin:0 0 8px;font-weight:700;color:var(--stage-ink)}
body:not(.console-page) #dialog .dl141{display:flex;gap:10px;padding:2px 8px;border-radius:6px;font-family:'JetBrains Mono',ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.6;color:#DCE6EF}
body:not(.console-page) #dialog .dl141 .pg141{flex:0 0 64px;color:#8FA3B6}
body:not(.console-page) #dialog .dl141 .sg141{flex:0 0 12px;font-weight:700}
body:not(.console-page) #dialog .dl141 .tx141{flex:1;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere}
body:not(.console-page) #dialog .dl141.add141{background:rgba(143,221,176,.14)}
body:not(.console-page) #dialog .dl141.add141 .sg141{color:#8FDDB0}
body:not(.console-page) #dialog .dl141.del141{background:rgba(244,168,140,.14)}
body:not(.console-page) #dialog .dl141.del141 .sg141{color:#F4A88C}
body:not(.console-page) #dialog .dl141.same141{color:#A9BBCB}
body:not(.console-page) #dialog .gap141{padding:0 8px;color:#8FA3B6}
body:not(.console-page) #dialog .cmp141 .muted141{color:var(--stage-muted)}

/* ---------- Kode: chip pengodean dan warna sintaks */
body:not(.console-page) #dialog .preview-tools.enc141on .lines132p{display:none}
body:not(.console-page) #dialog .preview-tools .enc141{height:32px;box-sizing:border-box;padding:0 10px;border-radius:8px;background:var(--stage-2);color:var(--stage-muted);display:inline-flex;align-items:center;font-size:13px}
body:not(.console-page) #dialog .text-preview.hl141{color:#DCE6EF}
body:not(.console-page) #dialog .text-preview .t141.kw{color:#7FD2FA}
body:not(.console-page) #dialog .text-preview .t141.str{color:#F2C26B}
body:not(.console-page) #dialog .text-preview .t141.num{color:#F3A6CF}
body:not(.console-page) #dialog .text-preview .t141.com{color:#8FA3B6}
body:not(.console-page) #dialog .text-preview .t141.fn{color:#8FDDB0}
body:not(.console-page) #dialog .text-preview .t141.key{color:#A6DFFC}

/* ---------- File tanpa pratinjau: jarak kartu keadaan seperti papan (22 px) */
body:not(.console-page) #dialog .td-card135+.cases139{margin-top:22px}

/* ---------- Halaman Persetujuan (semua aturan di bawah .ap141: kelas umum seperti .tile141, .st141, .note141, .dot141 juga dipakai jalur R141 lain, C3) */
.ap141head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px}
.ap141head .actions{display:flex;gap:8px}
.ap141{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.aplist141{flex:2 1 280px;min-width:0;display:flex;flex-direction:column;gap:8px}
.apgroup141{margin-top:8px;font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--muted)}
.aplist141>.apgroup141:first-child{margin-top:0}
.apitem141{width:100%;box-sizing:border-box;padding:14px;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--ink);font:inherit;text-align:left;display:flex;gap:12px;cursor:pointer}
.apitem141:hover{border-color:var(--line-2)}
.apitem141[aria-current=true]{padding:13px;border:2px solid var(--accent);border-radius:16px;background:var(--select141)}
.apitem141:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ap141 .tile141{width:34px;height:34px;flex:0 0 auto;border-radius:9px;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}
.ap141 .tile141.big141{width:44px;height:44px;border-radius:12px;font-size:12px}
.apmain141{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;font-size:13px}
.apmain141 b{font-size:14px;font-weight:700;overflow-wrap:anywhere}
.apsub141{color:var(--muted)}
.apsub141.ok141{color:var(--ok-ink);font-weight:600}
.apsub141.bad141{color:var(--danger-ink);font-weight:600}
.apsub141.warn141{color:var(--warn-ink);font-weight:600}
.apdetail141{flex:3 1 420px;min-width:0;box-sizing:border-box;padding:22px;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--ink);display:flex;flex-direction:column;gap:16px}
.apdhead141{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.apdtitle141{flex:1;min-width:0;display:flex;flex-direction:column}
.apdtitle141 h2{margin:0;font-size:16px;font-weight:700;overflow-wrap:anywhere}
.apdetail141 .muted141,.aplist141 .muted141{margin:0;color:var(--muted);font-size:13px}
.ap141 .banner141{margin:0;padding:10px 14px;border-radius:12px;background:var(--surface-2);font-size:13px}
.ap141 .banner141.ok141{background:var(--ok);color:var(--ok-ink)}
.ap141 .banner141.bad141{background:var(--danger);color:var(--danger-ink)}
.ap141 .banner141.warn141{background:var(--warn);color:var(--warn-ink)}
.ap141 .steps141{margin:0;padding:0;list-style:none;display:flex;flex-direction:column}
.ap141 .st141{display:flex;gap:14px}
.ap141 .dotcol141{display:flex;flex-direction:column;align-items:center}
.ap141 .dot141{width:30px;height:30px;box-sizing:border-box;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}
.ap141 .dot141 svg{width:15px;height:15px}
.ap141 .st-approved .dot141{background:var(--ok);color:var(--ok-ink)}
.ap141 .st-rejected .dot141{background:var(--danger);color:var(--danger-ink)}
.ap141 .st-current .dot141{background:var(--accent);color:var(--on-accent)}
.ap141 .st-waiting .dot141,.ap141 .st-not_reached .dot141,.ap141 .st-decided .dot141{border:2px solid var(--line-2);color:var(--muted)}
.ap141 .bar141{flex:1;width:2px;min-height:18px;background:var(--line-2)}
.ap141 .st-approved .bar141{background:var(--ok-ink);opacity:.4}
.ap141 .st141:last-child .bar141{display:none}
.ap141 .sttext141{flex:1;min-width:0;padding-bottom:14px;display:flex;flex-direction:column;gap:3px;font-size:13px}
.ap141 .sttext141 b{font-size:14px;font-weight:700}
.ap141 .turn141{margin-left:6px;padding:2px 10px;border-radius:999px;background:var(--soft);color:var(--soft-ink);font-size:12px;font-weight:700}
.ap141 .note141{display:block;overflow-wrap:anywhere}
.apform141{display:flex;flex-direction:column;gap:10px}
.ap141 .field141{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600}
.ap141 .field141 textarea{box-sizing:border-box;width:100%;padding:10px 12px;border:1.5px solid var(--line-2);border-radius:12px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;font-weight:400;resize:vertical}
.apbtns141{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.apbtns141 .btn{height:44px;min-height:44px;padding:0 20px;border-radius:999px;font-size:14px;font-weight:700}
.apbtns141 .btn.danger141{border:0;background:transparent;color:var(--danger-ink)}
.apdetail141 .msg141{margin:0;padding:10px 14px;border-radius:12px;background:var(--ok);color:var(--ok-ink);font-size:13px}
.ap141empty p{margin:0 0 6px}
@media (max-width:640px){.apdetail141{padding:16px}.apbtns141 .btn{flex:1 1 140px}}
