/* Cổng forma.1cad.vn — giao diện hướng A (ảnh duyệt FX-1A, FX-1A-m, FX-2, FX-4; 15/10/2026).
   Ngôn ngữ OneCAD Portal: dải navy lưới bản vẽ 24px liền thanh trên, nền xám xanh, thẻ trắng viền mảnh, bảng table.data,
   thẻ trang gạch chân 15px, ký hiệu trạng thái ô vuông nhỏ (không viên thuốc). CSP cấm style nội tuyến: vị trí dải tiến độ gán bằng JS (CSSOM). */
@font-face{font-family:"Be Vietnam Pro";font-weight:400;src:url(/fonts/BeVietnamPro-400.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Be Vietnam Pro";font-weight:500;src:url(/fonts/BeVietnamPro-500.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Be Vietnam Pro";font-weight:600;src:url(/fonts/BeVietnamPro-600.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Be Vietnam Pro";font-weight:700;src:url(/fonts/BeVietnamPro-700.woff2) format("woff2");font-display:swap}

:root{
  --navy:#0d2542;--navy-2:#12355d;--blue:#0665ed;--blue-h:#0556c9;--bg:#f2f5f9;--surface:#fff;--surface-2:#fafbfd;--grp:#f7f9fc;
  --edge:#dce5ef;--hair:#eef2f7;--line:#dde5ef;--ink:#20334d;--grp-ink:#0d2542;--muted:#56687f;--faint:#8193a8;
  --ok:#167548;--warn:#8a5a00;--warnbg:#fff5df;--danger:#b42318;--danger-edge:#f3c9c4;--sky:#8fd3ff;
  --sel:#edf4ff;--sel-edge:#cfe0f7;--seg:#e6ecf3;--seg-on:#fff;--bar-plan:#b7c4d4;--cut:#d26b5f;--dia:#0d2542;--dia-edge:#fff;
  --trap:#d39a1c;--avoid:#b4473b;--edit:#fafcff;--chg:#fffaf0;--sw-off:#cfd8e3;--grip:#c3ccd8;--mark:#fdeab0;--shadow:#0d254214;
  --vio:#6941c6;--vio-s:#faf8ff;--vio-e:#d4c5f9;--bad-s:#fff5f4;--bad-e:#e7a29b;--bad-t:#fdecea;--ed-s:#fffbef;--add-s:#fff8e6;--tach-s:#fff1c2;
  --mono:"SF Mono",ui-monospace,Menlo,monospace;
  --bp:linear-gradient(#ffffff0e 1px,transparent 1px) 0 0/24px 24px,linear-gradient(90deg,#ffffff0e 1px,transparent 1px) 0 0/24px 24px,linear-gradient(135deg,var(--navy),var(--navy-2));
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root{
    --navy:#081a30;--navy-2:#0e2a4c;--blue:#4d94ff;--blue-h:#6aa6ff;--bg:#0a1524;--surface:#0f1e33;--surface-2:#122339;--grp:#112238;
    --edge:#22385a;--hair:#1a2d48;--line:#2a4266;--ink:#e2eaf4;--grp-ink:#cfe0f5;--muted:#9db0c8;--faint:#71849e;
    --ok:#4cc38a;--warn:#f0b54a;--warnbg:#3a2c0e;--danger:#f2867a;--danger-edge:#5c2a26;
    --sel:#16305a;--sel-edge:#2b4f86;--seg:#0b1728;--seg-on:#1c3354;--bar-plan:#4a5f7c;--cut:#e0786b;--dia:#cfe0f5;--dia-edge:#0f1e33;
    --trap:#e0a93a;--avoid:#f08a7d;--edit:#0d1b2e;--chg:#33270c;--sw-off:#33496a;--grip:#3d5576;--mark:#5a4a12;--shadow:#00000066;
    --vio:#b69cf5;--vio-s:#1f1a3a;--vio-e:#4b3a86;--bad-s:#2b1616;--bad-e:#6b2f29;--bad-t:#3a1a18;--ed-s:#2a220f;--add-s:#2c230d;--tach-s:#3a2c0e;
    color-scheme:dark;
  }
}

*{box-sizing:border-box}
html,body{margin:0}
[hidden]{display:none!important}
body{background:var(--bg);color:var(--ink);font:400 14.5px/1.5 "Be Vietnam Pro",system-ui,sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:underline}
button{font:inherit;cursor:pointer;color:inherit}
input,textarea,select{font:inherit;color:inherit}
.ic{flex:none;display:block}
.mono{font-family:var(--mono);font-size:12.5px;letter-spacing:-.1px}
.muted{color:var(--muted)}.faint{color:var(--faint)}.tnum{font-variant-numeric:tabular-nums}
.sp{flex:1}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.w-sm{display:none}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* ---------- thanh trên chung (ảnh duyệt FM-1A, FM-1A-m; 16/10/2026): nền sáng, chữ, đứng NGOÀI dải navy ---------- */
.topbar{background:var(--surface);position:relative;z-index:30}
.tw{max-width:1200px;margin:0 auto;padding:0 40px;height:72px;display:flex;align-items:center;gap:14px}
body.wide .tw,body.wide .fw{max-width:none;padding-left:28px;padding-right:28px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none!important;flex:none}
.brand img{height:34px;width:auto;display:block}
.brand span{padding-left:14px;border-left:1px solid var(--edge);font-size:18px;font-weight:600;color:var(--grp-ink);line-height:22px;white-space:nowrap}
.mb{display:none;width:44px;height:44px;place-items:center;color:var(--grp-ink);background:none;border:0;border-radius:10px;margin-right:-10px}
.tnav{display:flex;align-items:center;gap:28px;margin-left:22px}
.tnav a{font-size:15px;font-weight:500;color:var(--muted);white-space:nowrap;text-decoration:none!important}
.tnav a:hover,.tnav a.on{color:var(--grp-ink)}
.tnav a.on{font-weight:600}
.tnav .m-only{display:none}
.tw>.login{font-size:15px;font-weight:500;color:var(--muted);white-space:nowrap;text-decoration:none!important}
.tw>.login:hover,.tw>.login.on{color:var(--grp-ink)}
.tw>.login.on{font-weight:600}
/* ---------- dải navy: tiêu đề + chỉ số (trang trong) ---------- */
.band{background:var(--bp);color:#fff;position:relative}
.flag{font-size:11.5px;font-weight:700;color:#0d2542;background:#8ee0b8;border-radius:999px;padding:4px 12px;white-space:nowrap}
.umenu{position:relative}
.me{display:flex;align-items:center;gap:9px;color:var(--ink);background:none;border:0;padding:4px;border-radius:10px;text-align:left}
.me:hover{background:var(--hair)}
.av{width:32px;height:32px;border-radius:50%;background:#2b7be9;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}
.me .mt{display:flex;flex-direction:column;max-width:200px}
.me b{font-size:13px;font-weight:600;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me small{font-size:11px;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.udrop{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:200px;background:var(--surface);color:var(--ink);border:1px solid var(--edge);border-radius:10px;box-shadow:0 8px 24px var(--shadow);padding:6px;display:flex;flex-direction:column}
.udrop a,.udrop button{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;color:var(--ink);background:none;border:0;font-size:14px;text-align:left;text-decoration:none}
.udrop a:hover,.udrop button:hover{background:var(--hair)}
.head{display:flex;align-items:flex-end;gap:14px 24px;flex-wrap:wrap;padding:14px 28px 18px}
.crumbs{width:100%;font-size:11.5px;color:#8fa4bf;margin-bottom:-6px;display:flex;gap:6px;align-items:center}
.crumbs b{color:#c9d6e6;font-weight:600}
.crumbs a{color:inherit}.crumbs a:hover{color:#fff}
.head .ht{flex:1 1 560px;min-width:0}
.head h1{font-size:27px;font-weight:650;line-height:1.25;margin:0;letter-spacing:-.3px}
.head .sum{color:#a9bad0;margin:4px 0 0;font-size:14px;max-width:860px}
.head .sum b{color:#fff;font-weight:600}
.head .acts{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap}
.kpis{display:flex;border-top:1px solid #ffffff1a;margin:0 28px;padding:14px 0 18px}
.kpi{padding:0 26px 0 0;margin-right:26px;border-right:1px solid #ffffff1a;min-width:0}
.kpi:last-child{border-right:0;margin-right:0}
.kpi .v{font-size:24px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;white-space:nowrap}
.kpi .v small{font-size:13px;font-weight:600;color:#a9bad0;margin-left:3px}
.kpi .c{font-size:12px;color:#a9bad0;margin-top:3px;white-space:nowrap}
.kpi.warn .v{color:#ffcf70}

/* ---------- nút ---------- */
.btn{min-height:40px;padding:0 16px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;font-size:14px;text-decoration:none!important;cursor:pointer}
.btn:hover{border-color:var(--faint)}
.band .btn:not(.ghost):not(.primary){background:#fff;color:#20334d;border-color:#fff}
.btn.ghost{background:transparent;border-color:#ffffff40;color:#fff}
.btn.ghost:hover{background:#ffffff14;border-color:#ffffff70}
.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.btn.primary:hover{background:var(--blue-h);border-color:var(--blue-h)}
.btn.sm{min-height:34px;padding:0 12px;border-radius:10px;font-size:13.5px}
.btn.del{color:var(--danger);border-color:var(--danger-edge)}
.btn.dangerfill{background:var(--danger);border-color:var(--danger);color:#fff}
.btn:disabled{opacity:.6;cursor:default}
.iconbtn{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--edge);border-radius:9px;background:var(--surface);color:var(--muted)}
.iconbtn:hover{color:var(--ink);border-color:var(--faint)}
.linkbtn{background:none;border:0;padding:0;color:var(--blue);font-weight:600}

/* ---------- thân trang ---------- */
.body{padding:18px 28px 36px;display:flex;flex-direction:column;gap:18px;flex:1;width:100%}
.tabrow{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--edge)}
.tabs{display:flex;gap:2px}
.ptabs{border-bottom:1px solid var(--edge)}
.tabs a{min-height:48px;padding:0 14px;font-weight:600;font-size:15px;color:var(--muted);border-bottom:2.5px solid transparent;margin-bottom:-1px;display:inline-flex;gap:8px;align-items:center;white-space:nowrap;text-decoration:none}
.tabs a:hover{color:var(--ink)}
.tabs a.on{color:var(--blue);border-bottom-color:var(--blue)}
.tabs .cnt{min-width:22px;height:22px;border-radius:11px;background:var(--hair);color:var(--muted);font-size:12.5px;font-weight:700;display:inline-grid;place-items:center;padding:0 7px}
.tabs a.on .cnt{background:rgba(6,101,237,.1);color:var(--blue)}
.tabs .cnt.warn{background:var(--warnbg);color:var(--warn)}
.tabrow .seg-ctl{margin-left:auto}
.seg-ctl{display:inline-flex;background:var(--seg);border-radius:10px;padding:3px;gap:2px}
.seg-ctl button{all:unset;cursor:pointer;height:34px;padding:0 13px;border-radius:8px;font-size:14.5px;font-weight:600;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}
.seg-ctl button:focus-visible{outline:2px solid var(--blue)}
.seg-ctl button.on{background:var(--seg-on);color:var(--ink);box-shadow:0 1px 2px var(--shadow)}
.seg-ctl button i{font-style:normal;font-size:12px;color:var(--faint);font-weight:600}
.seg-ctl.xs button{height:28px;padding:0 10px;font-size:12.5px}
.card{background:var(--surface);border:1px solid var(--edge);border-radius:10px;overflow:hidden}
.ch{display:flex;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--hair);flex-wrap:wrap}
.ch h2{font-size:16px;font-weight:700;margin:0;display:flex;align-items:center;gap:8px}
.ch .note{font-size:12.5px;color:var(--muted)}
.ch .r{margin-left:auto;display:flex;gap:14px;align-items:center;font-size:12.5px;color:var(--muted)}
.cf{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 20px;border-top:1px solid var(--edge);background:var(--surface-2)}
.cf .r{margin-left:auto;font-size:12.5px;color:var(--muted)}
.state{padding:28px 20px;color:var(--muted);display:flex;align-items:center;gap:10px;justify-content:center;flex-wrap:wrap;text-align:center}
.state.err{color:var(--danger)}

/* ---------- bảng ---------- */
table.data{width:100%;border-collapse:collapse;font-size:13.5px}
table.data th{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);text-align:left;padding:10px 12px;border-bottom:1px solid var(--edge);background:var(--surface-2);white-space:nowrap;vertical-align:bottom}
table.data td{padding:10px 12px;border-bottom:1px solid var(--hair);vertical-align:middle}
table.data td:first-child,table.data th:first-child{padding-left:20px}
table.data td:last-child,table.data th:last-child{padding-right:20px}
table.data tbody tr:last-child td{border-bottom:0}
tr.grp td{background:var(--grp);padding-top:9px;padding-bottom:9px;border-bottom:1px solid var(--edge);border-top:1px solid var(--edge)}
tr.grp b{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--grp-ink)}
tr.grp span{font-size:12.5px;color:var(--muted);margin-left:10px}
.an{font-weight:600;color:var(--ink);font-size:14px;display:block;line-height:1.3}
a.an{color:var(--ink)}
.ad{font-size:12.5px;color:var(--muted);display:block;line-height:1.4;margin-top:2px}
.law{font-size:12.5px;color:var(--ink);line-height:1.4}
.law .ic,.lw .ic{display:inline-block;vertical-align:-2px;margin-right:4px;color:var(--faint)}
.api{font-size:12.5px;font-weight:600;white-space:nowrap}
.api.y{color:var(--ok)}.api.p{color:var(--warn)}.api.n{color:var(--muted);font-weight:500}.api.w{color:var(--faint);font-weight:500}
.mk{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;white-space:nowrap}
.mk i{width:9px;height:9px;border-radius:2px;flex:none}
.mk.doing{color:var(--blue)}.mk.doing i{background:var(--blue)}
.mk.live{color:var(--ok)}.mk.live i{background:var(--ok)}
.mk.plan{color:var(--muted)}.mk.plan i{border:1.5px solid var(--faint)}
.mk.wait{color:var(--warn)}.mk.wait i{border:1.5px dashed var(--trap)}
.mk.paused{color:var(--faint)}.mk.paused i{background:var(--bar-plan)}
.dt{font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}
.dt.soft{color:var(--faint)}
.mv{display:flex;gap:4px;align-items:center;font-size:11.5px;color:var(--warn);margin-top:2px}

/* ---------- dải tiến độ (vị trí % gán bằng JS) ---------- */
.gt{position:relative;height:22px}
.gt u{position:absolute;top:-10px;bottom:-10px;border-left:1px solid var(--hair)}
.gt .today{position:absolute;top:-11px;bottom:-11px;border-left:1.5px solid var(--blue);z-index:2}
.gt .cut{position:absolute;top:-11px;bottom:-11px;border-left:1.5px dashed var(--cut);z-index:1}
.gt .bar{position:absolute;top:7px;height:8px;border-radius:2px;z-index:3;min-width:3px}
.gt .bar.doing{background:var(--blue)}
.gt .bar.live{background:var(--ok)}
.gt .bar.plan{background:var(--bar-plan)}
.gt .bar.open{right:0;background:repeating-linear-gradient(90deg,var(--bar-plan) 0 6px,transparent 6px 10px)}
.gt .dia{position:absolute;top:6px;width:9px;height:9px;background:var(--dia);transform:translateX(-4.5px) rotate(45deg);z-index:4;border:1.5px solid var(--dia-edge)}
.gt .tbd{position:absolute;top:2px;white-space:nowrap;font-size:11.5px;color:var(--faint);font-style:italic}
.gh{position:relative;height:16px}
.gh span{position:absolute;font-size:11px;font-weight:700;color:var(--muted);padding-left:5px;letter-spacing:.02em;white-space:nowrap}
.gth{padding-left:0!important;padding-right:0!important;padding-bottom:6px!important}
.gtd{padding-left:0!important;padding-right:0!important}
.legend{display:flex;gap:16px;align-items:center;font-size:12px;color:var(--muted);flex-wrap:wrap}
.legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.legend .mk{font-size:12.5px;font-weight:500;color:var(--muted)}.legend .mk.doing{color:var(--blue)}
.lg-today{width:0;height:13px;border-left:1.5px solid var(--blue)}
.lg-cut{width:0;height:13px;border-left:1.5px dashed var(--cut)}
.lg-dia{width:8px;height:8px;background:var(--dia);transform:rotate(45deg)}
.lg-bar{width:16px;height:7px;border-radius:2px;background:var(--blue)}
.lg-bar.p{background:var(--bar-plan)}

/* ---------- dùng chung (Quản trị, Dự án, Hỗ trợ) ---------- */
.phase{white-space:nowrap}
.split{display:grid;grid-template-columns:7fr 5fr;gap:18px;align-items:start}
.stack{display:flex;flex-direction:column;gap:18px}
.mlist{display:none}

/* ---------- từ điển ---------- */
.search{margin:0 28px;display:flex;gap:10px;align-items:center}
.sbox{flex:1;height:50px;background:var(--surface);border-radius:12px;display:flex;align-items:center;gap:12px;padding:0 16px;color:var(--ink);box-shadow:0 0 0 3px #8fd3ff55;min-width:0}
.sbox .ic{color:var(--muted)}
.sbox input{flex:1;min-width:0;border:0;outline:0;background:none;font-size:16px;color:var(--ink);height:100%}
.sbox input::placeholder{color:var(--faint)}
.sbox input::-webkit-search-cancel-button{display:none}
.sbox kbd{margin-left:auto;font:600 11.5px var(--mono);color:var(--muted);background:var(--hair);border-radius:6px;padding:3px 7px}
.sbox .clr{background:none;border:0;color:var(--muted);padding:4px;border-radius:6px;display:grid;place-items:center}
.search .hint{color:#a9bad0;font-size:12.5px;white-space:nowrap}
.band .search+.kpis{margin-top:16px}
.lay{display:grid;grid-template-columns:272px minmax(0,1fr);gap:18px;align-items:start}
.idx .ch{padding:12px 16px}
.idx .ch h2{font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.idx ol{list-style:none;margin:0;padding:6px 0}
.idx li button{all:unset;cursor:pointer;box-sizing:border-box;width:100%;display:grid;grid-template-columns:40px 1fr auto;gap:6px;align-items:center;padding:7px 16px;font-size:13.5px;border-left:3px solid transparent;color:var(--ink)}
.idx li button:hover{background:var(--hair)}
.idx li button:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.idx li .mono{color:var(--faint);font-size:12px}
.idx li em{font-style:normal;font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums}
.idx li button.on{background:var(--sel);border-left-color:var(--blue);font-weight:600;color:var(--blue)}
.idx li button.on .mono,.idx li button.on em{color:var(--blue)}
.idx li button.dim{color:var(--faint)}
.idx .isum{border-top:1px solid var(--hair);padding:12px 16px;font-size:12.5px;color:var(--muted);line-height:1.6}
.idx .isum b{color:var(--ink);font-weight:600}
.gh2{display:flex;align-items:baseline;gap:12px}
.gh2 .mono{font-size:14px;color:var(--blue);font-weight:600}
#gcard .seg-ctl button{height:32px;font-size:13.5px}
table.dict{table-layout:fixed}
table.dict col.k{width:84px}table.dict col.en{width:19%}table.dict col.vi{width:20%}table.dict col.av{width:13%}table.dict col.lw{width:17%}table.dict col.rv{width:138px}
table.dict.rvw col.en{width:15%}table.dict.rvw col.vi{width:17%}table.dict.rvw col.av{width:11%}table.dict.rvw col.lw{width:14%}
table.dict td{vertical-align:top;padding-top:11px;padding-bottom:11px}
table.dict .k{font:600 12px var(--mono);color:var(--faint);white-space:nowrap}
table.dict .en{font-family:var(--mono);font-size:13px;color:var(--grp-ink);overflow-wrap:anywhere}
table.dict .vi{font-weight:600;font-size:14.5px}
table.dict .scope{display:block;font-size:12px;color:var(--muted);font-weight:400}
table.dict .avd{color:var(--avoid);font-size:13px;text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--avoid) 55%,transparent)}
table.dict .nt{font-size:13px;color:var(--muted)}
table.dict .lw{font-size:12.5px}
table.dict tr.trap td:first-child{box-shadow:inset 3px 0 var(--trap)}
table.dict mark{background:var(--mark);color:inherit;border-radius:2px}
.trapk{display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:var(--warn);margin-top:3px}
.gnext{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 20px;border-top:1px solid var(--edge);background:var(--surface-2);font-size:13.5px;color:var(--muted)}
.gnext b{color:var(--ink);font-weight:600}
.gnext button{margin-left:auto;display:inline-flex;gap:6px;align-items:center;font-weight:600;background:none;border:0;color:var(--blue)}
.stbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 20px;border-bottom:1px solid var(--hair);background:var(--sel);font-size:12.5px;color:var(--ink)}
.stbar .ic{color:var(--blue)}
.stbar select{height:30px;border:1px solid var(--edge);border-radius:8px;background:var(--surface);padding:0 8px;font-size:12.5px}
.stbar .r{margin-left:auto;display:flex;gap:12px;align-items:center}
.rvb{display:flex;flex-direction:column;align-items:stretch;gap:5px}
.rvb button{white-space:nowrap;display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 9px;border:1px solid var(--edge);border-radius:8px;background:var(--surface);font-size:12.5px;font-weight:600;color:var(--muted)}
.rvb button .n{font-size:11.5px;color:var(--faint)}
.rvb button.ok.on{border-color:var(--ok);color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--surface))}
.rvb button.fix.on,.rvb button.fix[aria-expanded="true"]{border-color:var(--trap);color:var(--warn);background:var(--warnbg)}
tr.cmr>td{background:var(--edit);padding:12px 20px 14px!important}
.cmts{display:flex;flex-direction:column;gap:10px;max-width:880px;margin-left:auto}
.cmt{font-size:13px}
.cmh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.cmh .av{width:24px;height:24px;font-size:10.5px}
.cmh .when{color:var(--faint);font-size:12px}
.cmt p{margin:4px 0 0 32px;white-space:pre-wrap}
.cempty{color:var(--faint);font-size:13px}
.cbox textarea{width:100%;border:1px solid var(--edge);border-radius:9px;background:var(--surface);padding:8px 11px;resize:vertical;min-height:60px}
.cact{display:flex;align-items:center;gap:8px;justify-content:flex-end;margin-top:8px;flex-wrap:wrap}
.cact .hint{margin-right:auto;font-size:12px;color:var(--faint)}

/* ---------- biểu mẫu (khung FX-4) ---------- */
.fbody{padding:16px 20px 18px;display:flex;flex-direction:column;gap:12px}
.fbody p{margin:0}
.fbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 20px;border-top:1px solid var(--hair);background:var(--surface-2);font-size:12.5px}
.fl{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--muted);font-weight:600}
.fl .opt{font-weight:400;color:var(--faint)}
.req{color:var(--danger)}
.fl input,.fl textarea,.fl select,.inp{height:38px;border:1px solid var(--edge);border-radius:9px;background:var(--surface);padding:0 11px;font:400 14px "Be Vietnam Pro",system-ui,sans-serif;color:var(--ink);width:100%}
.fl textarea{height:auto;min-height:82px;padding:8px 11px;resize:vertical;line-height:1.45}
.fl input:focus,.fl textarea:focus,.fl select:focus,.inp:focus-within{outline:2px solid color-mix(in srgb,var(--blue) 45%,transparent);outline-offset:0;border-color:var(--blue)}
.fl input.m{font-family:var(--mono);font-size:13px}
.fl input.chg{border-color:var(--trap);background:var(--chg)}
.inp{display:flex;align-items:center;gap:8px;padding:0 6px 0 11px}
.inp .ic{color:var(--faint)}
.inp input{border:0;outline:0!important;height:100%;padding:0;background:none}
.inp .eye{background:none;border:0;color:var(--muted);padding:6px;border-radius:6px;display:grid;place-items:center}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.ferr{background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger);border:1px solid var(--danger-edge);border-radius:9px;padding:9px 12px;font-size:13px}
.bay{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.sw{width:34px;height:20px;border-radius:10px;background:var(--sw-off);position:relative;border:0;padding:0;flex:none;display:inline-block;vertical-align:middle}
.sw i{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:left .15s}
.sw.on{background:var(--blue)}.sw.on i{left:16px}

/* ---------- hỗ trợ + đăng nhập ---------- */
.split.help{grid-template-columns:7fr 5fr}
table.kv td{vertical-align:top;padding-top:13px;padding-bottom:13px}
table.kv td:first-child{width:44px;color:var(--faint)}
table.kv td b{font-weight:650;font-size:13.5px}
table.kv .u{display:block;margin-top:2px;font-size:13px}
.done .ch h2 .ic{color:var(--ok)}
body.dang-nhap .body{align-items:center}
.lcard{width:100%;max-width:480px}
.lrow{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}
.ck{display:flex;align-items:center;gap:8px;color:var(--ink)}
.ck input{width:16px;height:16px;accent-color:var(--blue)}
.lnote{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--muted)}
.lnote.warn{background:var(--warnbg);color:var(--warn);border-radius:9px;padding:9px 12px}
.lback{display:inline-flex;gap:6px;align-items:center;font-size:13.5px;font-weight:600}

/* ---------- OneCAD ID (ảnh duyệt FV-ID-1…4, 18/10/2026): trang đăng nhập, Kết nối Autodesk, menu tài khoản, Quản trị khi chưa có quyền ---------- */
.btn.oid{min-height:50px;font-size:15.5px;border-radius:12px;width:100%;gap:10px}
.oid-tag{font:700 11px/1 "Be Vietnam Pro",system-ui,sans-serif;letter-spacing:.04em;background:#ffffff2b;border-radius:6px;padding:4px 6px}
.idtag{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;color:var(--blue);background:color-mix(in srgb,var(--blue) 9%,var(--surface));border-radius:6px;padding:2px 7px;white-space:nowrap}
.lgrid{display:grid;grid-template-columns:480px 400px;gap:28px;justify-content:center;align-items:start;width:100%}
.lgrid .lcard{max-width:none}
.lcard .fbody{gap:14px}
.lcard .why{font-size:13.5px;color:var(--muted);line-height:1.6;margin:0}
.lcard .why b{color:var(--ink);font-weight:600}
.ldiv{display:flex;align-items:center;gap:12px;font-size:12.5px;color:var(--faint);margin:4px 0 -2px}
.ldiv::before,.ldiv::after{content:"";flex:1;height:1px;background:var(--hair)}
.lrowcard{display:grid;grid-template-columns:36px minmax(0,1fr) 18px;gap:12px;align-items:center;border:1px solid var(--edge);border-radius:10px;padding:12px 14px;color:var(--ink);text-decoration:none!important}
.lrowcard:hover{border-color:var(--faint)}
.lrowcard .k{width:36px;height:36px;border-radius:9px;background:var(--hair);display:grid;place-items:center;color:var(--blue)}
.lrowcard b{display:block;font-size:14px;font-weight:650}
.lrowcard small{display:block;font-size:12.5px;color:var(--muted);line-height:1.45}
.lrowcard>.ic:last-child{color:var(--faint)}
.lnote.info{background:var(--hair);border-radius:9px;padding:10px 12px;align-items:flex-start;line-height:1.5}
.lnote.info .ic{margin-top:2px;flex:none;color:var(--blue)}
.lnote b{color:var(--ink);font-weight:600}
.fbar .tip{display:flex;gap:8px;align-items:flex-start;color:var(--muted)}
.fbar .tip .ic{color:var(--faint);margin-top:2px}
.fbar .tip b{color:var(--ink)}
.useful .row{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;padding:13px 20px;border-bottom:1px solid var(--hair)}
.useful .row:last-child{border-bottom:0}
.useful .row .k{width:32px;height:32px;border-radius:8px;background:var(--hair);display:grid;place-items:center;color:var(--muted)}
.useful .row b{display:block;font-size:14px;font-weight:650}
.useful .row small{display:block;font-size:12.5px;color:var(--muted);line-height:1.5}
.useful .row .st{display:inline-block;margin-top:4px;font-size:11.5px;font-weight:600;color:var(--faint)}
.useful .row .st.need{color:var(--warn)}
/* thanh trên: chip Autodesk chưa kết nối (bấm được) */
.conn.off i{background:#b9c4d1}
a.conn.off{color:var(--muted);text-decoration:none!important}
a.conn.off:hover{color:var(--ink)}
/* FV-ID-2 thẻ «Kết nối Autodesk» */
.kgrid{display:grid;grid-template-columns:minmax(0,760px) 340px;gap:24px;justify-content:center;width:100%;align-items:start}
.kcard .fbody{gap:16px;padding:20px 24px 22px}
.kcard .lead{font-size:14.5px;line-height:1.6;color:var(--ink);margin:0}
.reads{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.reads>div{border:1px solid var(--edge);border-radius:10px;padding:12px 14px;background:var(--surface-2)}
.reads .ic{color:var(--blue)}
.reads b{display:block;font-size:13.5px;font-weight:650;margin:6px 0 2px}
.reads small{display:block;font-size:12.5px;color:var(--muted);line-height:1.45}
.kro{display:flex;gap:10px;align-items:center;border-radius:10px;padding:11px 14px;background:color-mix(in srgb,var(--ok) 8%,var(--surface));color:var(--ok);font-size:13.5px;font-weight:600}
.kro span{color:var(--ink);font-weight:400}
.steps3{display:flex;margin:0;padding:14px 0 0;border-top:1px solid var(--hair)}
.steps3 li{list-style:none;flex:1;display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--muted);line-height:1.45;padding-right:14px}
.steps3 li i{font-style:normal;flex:none;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--blue);color:var(--blue);display:grid;place-items:center;font:700 11.5px "Be Vietnam Pro",system-ui,sans-serif}
.steps3 li b{color:var(--ink);font-weight:600;display:block}
.kbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 24px;border-top:1px solid var(--hair);background:var(--surface-2)}
.kbar .hint{font-size:12.5px;color:var(--muted);margin-right:auto;display:flex;gap:7px;align-items:center}
.kbar .btn.primary{min-height:44px;padding:0 20px;font-size:15px}
.who .fbody{gap:10px}
.acct{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:11px;align-items:center}
.acct .av{width:36px;height:36px;font-size:12.5px}
.acct b{display:block;font-size:14px;font-weight:650;line-height:1.3}
.acct small{display:block;font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.who p{font-size:12.5px;color:var(--muted);line-height:1.55;margin:0}
.who p b{color:var(--ink);font-weight:600}
/* FV-ID-3 menu tài khoản */
.udrop.big{min-width:0;width:340px;padding:0;gap:0}
.udrop.big .uh{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--hair)}
.udrop.big .uh .av{width:40px;height:40px;font-size:13px}
.udrop.big .uh b{display:block;font-size:14.5px;font-weight:650;line-height:1.3}
.udrop.big .uh small{display:block;font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.udrop.big .uh .idtag{margin-top:5px}
.udrop.big .us{padding:12px 16px;border-bottom:1px solid var(--hair);display:flex;flex-direction:column;gap:8px}
.udrop.big .us .lb{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}
.udrop.big .us .btn{align-self:flex-start;border:1px solid var(--edge);padding:0 12px;min-height:34px}
.udrop.big .us .btn.primary{border-color:var(--blue);color:#fff;background:var(--blue)}
.udrop.big .us .btn.primary:hover{background:var(--blue-h)}
.adst{display:flex;gap:10px;align-items:flex-start}
.adst .dot{width:9px;height:9px;border-radius:50%;background:#4cc38a;margin-top:6px;flex:none}
.adst .dot.off{background:#b9c4d1}
.adst b{display:block;font-size:13.5px;font-weight:600}
.adst small{display:block;font-size:12.5px;color:var(--muted);word-break:break-all}
.udrop.big .ul{padding:6px;display:flex;flex-direction:column;border-bottom:1px solid var(--hair)}
.udrop.big .ul:last-child{border-bottom:0}
.udrop.big .ul a,.udrop.big .ul button{width:100%}
.udrop.big .ul .ic{color:var(--muted)}
.udrop.big .ul .ext{margin-left:auto;color:var(--faint);display:flex}
.udrop.big .ul .ext .ic{color:inherit}
.udrop.big .ul .sub{display:block;font-size:12px;color:var(--faint);font-weight:400}
.udrop.big .ul .tx{display:flex;flex-direction:column;line-height:1.35}
.btn.sm.ghostl{border-color:var(--edge);color:var(--ink)}
.btn.sm.ghostl .ic{color:var(--muted)}
.btn.sm.warnb{color:var(--danger);border-color:var(--danger-edge)}
.uscrim{display:none}
dialog.cdlg{padding:0;width:min(440px,calc(100vw - 32px));background:var(--surface);color:var(--ink);border:1px solid var(--edge);border-radius:12px;box-shadow:0 8px 24px var(--shadow)}
dialog.cdlg::backdrop{background:#0d254259}
.cdlg .dh{padding:16px 20px 6px;font-size:16px;font-weight:700;display:flex;gap:9px;align-items:center}
.cdlg .dh .ic{color:var(--warn)}
.cdlg .db{padding:4px 20px 16px;font-size:13.5px;color:var(--muted);line-height:1.6}
.cdlg .db p{margin:0}
.cdlg .db b{color:var(--ink)}
.cdlg .db ul{margin:6px 0 0;padding-left:18px}
.cdlg .df{display:flex;gap:8px;justify-content:flex-end;padding:12px 20px;border-top:1px solid var(--hair);background:var(--surface-2)}
/* nhắc nổi dưới thanh trên: đăng xuất xong (xanh), ?loi= (vàng) */
.notice{position:fixed;right:24px;top:84px;z-index:45;width:min(460px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--edge);border-radius:12px;box-shadow:0 8px 24px var(--shadow);padding:16px 18px;display:flex;flex-direction:column;gap:10px}
.notice .t{display:flex;gap:9px;align-items:center;font-size:15px;font-weight:650}
.notice.ok .t .ic{color:var(--ok)}
.notice.warn{background:var(--warnbg);border-color:color-mix(in srgb,var(--warn) 35%,var(--warnbg))}
.notice.warn .t{color:var(--warn)}
.notice p{margin:0;font-size:13.5px;color:var(--muted);line-height:1.55}
.notice.warn p{color:var(--ink)}
.notice .bb{display:flex;gap:8px;flex-wrap:wrap}
/* FV-ID-4 Quản trị khi chưa có quyền */
.ngrid{display:grid;grid-template-columns:minmax(0,600px);justify-content:center;width:100%}
.nocard .fbody{gap:16px;padding:22px 24px}
.lockt{width:48px;height:48px;border-radius:12px;background:var(--warnbg);color:var(--warn);display:grid;place-items:center}
.nocard h2.big{font-size:22px;font-weight:700;margin:0;color:var(--grp-ink);line-height:1.3}
.nocard .lead{margin:0;font-size:14.5px;color:var(--ink);line-height:1.6}
.acctbox{border:1px solid var(--edge);border-radius:10px;padding:12px 14px}
.ppl{border:1px solid var(--edge);border-radius:10px;overflow:hidden}
.ppl .ph{font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);background:var(--surface-2);padding:9px 14px;border-bottom:1px solid var(--hair)}
.ppl .pr{display:grid;grid-template-columns:32px minmax(0,1fr);gap:11px;align-items:center;padding:10px 14px}
.ppl .pr .av{width:32px;height:32px}
.ppl .pr b{display:block;font-size:13.5px;font-weight:650;line-height:1.3}
.ppl .pr small{display:block;font-size:12.5px;color:var(--muted)}
.nobar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:14px 24px;border-top:1px solid var(--hair);background:var(--surface-2)}
.nobar .r{margin-left:auto;font-size:13.5px;font-weight:600}
@media (max-width:980px){.lgrid,.kgrid{grid-template-columns:minmax(0,1fr);max-width:620px;margin:0 auto}}
@media (max-width:760px){
  .lgrid,.kgrid,.ngrid{grid-template-columns:minmax(0,1fr);gap:16px;max-width:none}
  .kro{flex-wrap:wrap;gap:4px 10px}.kro span{flex-basis:100%;padding-left:28px}
  .reads{grid-template-columns:minmax(0,1fr)}
  .steps3{flex-direction:column;gap:10px}
  .kcard .fbody,.nocard .fbody{padding:16px}
  .kbar,.nobar{padding:12px 16px}.kbar .hint{width:100%}.kbar .btn.primary{width:100%}
  .nobar .btn{flex:1 1 auto}.nobar .r{margin:4px auto 0}
  .umenu{position:static}
  .udrop.big{position:absolute;left:0;right:0;top:100%;width:auto;border:0;border-top:1px solid var(--hair);border-bottom:1px solid var(--edge);border-radius:0;box-shadow:0 16px 28px var(--shadow);z-index:45}
  .udrop.big .uh{padding:16px 20px}.udrop.big .us{padding:14px 20px}.udrop.big .ul{padding:6px 10px}
  .udrop.big .ul a,.udrop.big .ul button{padding:12px 10px;font-size:15px}
  .uscrim{display:block;position:fixed;inset:0;background:#0d254259;z-index:25}
  .notice{right:16px;left:16px;top:72px;width:auto}
}

/* ---------- hộp thoại ---------- */
.dlg{border:1px solid var(--edge);border-radius:12px;padding:0;width:min(560px,calc(100vw - 32px));background:var(--surface);color:var(--ink);box-shadow:0 20px 50px var(--shadow)}
.dlg::backdrop{background:#0d254266}
.dlg .ch .r{margin-left:auto}

/* ---------- quản trị (FX-4) ---------- */
.tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.tools .r{margin-left:auto}
.fin{height:40px;border:1px solid var(--edge);border-radius:10px;background:var(--surface);display:flex;align-items:center;gap:8px;padding:0 12px;width:300px;color:var(--faint)}
.fin input{border:0;outline:0;background:none;flex:1;min-width:0;font-size:14px;color:var(--ink)}
.fin input::placeholder{color:var(--faint)}
table.adm{table-layout:fixed}
table.adm col.c-grip{width:40px}table.adm col.c-ph{width:70px}table.adm col.c-name{width:17%}table.adm col.c-lay{width:70px}table.adm col.c-st{width:120px}
table.adm col.c-own{width:84px}table.adm col.c-gt{width:19%}table.adm col.c-eta{width:124px}table.adm col.c-vis{width:60px}table.adm col.c-ed{width:58px}
table.adm td{padding-top:9px;padding-bottom:9px}
table.adm td.grip{padding-right:0}
table.adm .grip button{all:unset;cursor:grab;color:var(--grip);display:grid;place-items:center;width:20px;height:24px;border-radius:4px}
table.adm .grip button:disabled{cursor:default;opacity:.4}
table.adm .grip button:focus-visible{outline:2px solid var(--blue)}
table.adm .ad.mono{font-size:11.5px;color:var(--faint)}
table.adm td.nx{font-size:13px}
table.adm tr.dragging td{opacity:.5}
.eb{width:32px;height:32px;border:1px solid var(--edge);border-radius:8px;display:grid;place-items:center;color:var(--muted);background:var(--surface)}
.eb:hover{color:var(--ink)}
tr.sel td{background:var(--sel)}
tr.sel td:first-child{box-shadow:inset 3px 0 var(--blue)}
tr.sel .eb{background:var(--blue);border-color:var(--blue);color:#fff}
tr.edit>td{padding:0!important;background:var(--edit);border-bottom:1px solid var(--edge)}
.ew{display:grid;grid-template-columns:1.15fr 1fr 1.1fr;border-top:1px solid var(--sel-edge)}
.ew .col{padding:16px 22px 18px;display:flex;flex-direction:column;gap:12px;min-width:0}
.ew .col+.col{border-left:1px solid var(--hair)}
.ew h3{margin:0;font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);display:flex;gap:6px;align-items:center}
.ew .seg-ctl{height:38px;align-items:center;display:flex}
.ew .seg-ctl button{height:32px;font-size:13px;padding:0 9px;flex:1}
.selw{position:relative;display:block}
.selw select{appearance:none;-webkit-appearance:none;padding-right:32px;cursor:pointer}
.selw .ic{position:absolute;right:10px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--muted)}
.selw select.st-build{color:var(--blue);font-weight:600}.selw select.st-waiting{color:var(--warn);font-weight:600}.selw select.st-live{color:var(--ok);font-weight:600}
.selw select.api-co{color:var(--ok);font-weight:600}.selw select.api-mot-phan,.selw select.api-dung-tay{color:var(--warn);font-weight:600}
.hist{font-size:12.5px;color:var(--muted);border-top:1px dashed var(--edge);padding-top:10px;display:flex;flex-direction:column;gap:5px}
.hist b{color:var(--ink);font-weight:600}
.hist .mono{font-size:11.5px;color:var(--faint);margin-right:10px}
.ebar{grid-column:1/-1;display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 22px;border-top:1px solid var(--hair);background:var(--surface)}
.inl{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink);background:none;border:0;padding:0}
.ebar .ferr{flex-basis:100%}
.rvsum{display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-size:13.5px;color:var(--muted)}
.rvsum b{color:var(--ink);font-weight:700}
.okc b{color:var(--ok)!important}.warnc,.warnc b{color:var(--warn)!important}
table.tk td{vertical-align:top}
table.tk tr.done td{opacity:.6}
table.tk .msg{white-space:pre-wrap;font-size:13px}
table.tk .who b{display:block;font-weight:600}
table.tk .who span{display:block;font-size:12.5px;color:var(--muted)}
table.lg td{font-size:13px}
table.lg s{color:var(--faint)}

/* ---------- thông báo nhỏ ---------- */
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#0d2542;color:#fff;padding:10px 16px;border-radius:10px;font-size:13.5px;z-index:50;box-shadow:0 8px 24px #0004;max-width:calc(100vw - 32px)}
.toast.err{background:var(--danger)}

/* ---------- chân trang chung (FM-1A, FM-1A-m) ---------- */
.foot{border-top:1px solid var(--edge);background:var(--surface);font-size:13.5px;color:var(--faint)}
.fw{max-width:1200px;margin:0 auto;padding:16px 40px;min-height:88px;display:flex;align-items:center;gap:24px}
.foot img{height:28px;width:auto;display:block}
.ftxt span{display:block}
.foot .r{margin-left:auto;display:flex;gap:24px;align-items:center}
.foot .r a,.foot .zalo{color:var(--muted);font-weight:500;white-space:nowrap}

/* ---------- màn vừa ---------- */
@media (max-width:1180px){
  .tw,.fw{padding-left:20px;padding-right:20px}.head,.body{padding-left:20px;padding-right:20px}.kpis,.search{margin-left:20px;margin-right:20px}
  .kpi{padding-right:16px;margin-right:16px}
  .kpis{flex-wrap:wrap;row-gap:12px}
  table.adm col.c-gt{width:0}table.adm .gtd,table.adm .gth{display:none}
}
@media (max-width:980px){
  .lay{grid-template-columns:1fr}
  .idx ol{display:flex;overflow-x:auto;padding:6px 8px;gap:4px}
  .idx li button{grid-template-columns:auto auto auto;border-left:0;border-bottom:2px solid transparent;padding:6px 10px;white-space:nowrap}
  .idx li button.on{border-bottom-color:var(--blue)}
  .idx .isum{display:none}
  .split,.split.help{grid-template-columns:1fr}
  .ew{grid-template-columns:1fr 1fr}
  .ew .col:nth-child(3){grid-column:1/-1;border-left:0;border-top:1px solid var(--hair)}
}
/* ---------- điện thoại (FX-1A-m) ---------- */
@media (max-width:760px){
  .w-lg,.desk{display:none!important}.w-sm{display:inline}
  body{font-size:14px}
  .tw,body.wide .tw{height:60px;padding:0 20px;gap:8px}
  .mb{display:grid}
  .tw>.login{display:none}
  .brand{gap:12px}.brand img{height:28px}.brand span{font-size:16px;padding-left:12px}
  .tnav{display:none;position:absolute;left:0;right:0;top:100%;z-index:40;margin:0;gap:0;flex-direction:column;align-items:stretch;background:var(--surface);border-top:1px solid var(--hair);border-bottom:1px solid var(--edge);box-shadow:0 12px 24px var(--shadow);padding:6px 0}
  .topbar.nav-open .tnav{display:flex}
  .tnav a{padding:12px 20px;border-left:3px solid transparent;font-size:16px}
  .tnav a.on{border-left-color:var(--blue)}
  .tnav .m-only{display:block}
  .flag,.me .mt{display:none}
  .head{padding:8px 16px 14px}.head h1{font-size:22px}.head .sum{font-size:13.5px}
  .head .acts{margin-left:0}
  .kpis{display:grid;grid-template-columns:1fr 1fr 1fr;margin:0 16px;padding:12px 0 16px;gap:12px 0}
  .kpi{margin-right:0;padding:0 10px 0 0;border-right:0}
  .kpi.m-hide{display:none}
  .kpi .v{font-size:20px}.kpi .c{white-space:normal;font-size:11.5px;line-height:1.3}
  .search{margin:0 16px;flex-direction:column;align-items:stretch}.search .hint{display:none}
  .sbox{height:46px;flex:none}.sbox input{font-size:15px}.sbox kbd{display:none}
  .body{padding:8px 0 24px;gap:12px}
  .tabrow{flex-direction:column;align-items:stretch;border-bottom:0;gap:12px}
  .tabrow .tabs,.ptabs{padding:0 6px;border-bottom:1px solid var(--edge);overflow-x:auto}
  .tabs a{font-size:14.5px;padding:0 10px}
  .tabrow .seg-ctl{margin:0 16px;display:flex}
  .seg-ctl button{flex:1;height:36px;font-size:13.5px;padding:0 6px}
  .card{border-radius:0;border-left:0;border-right:0}
  .ch{padding:12px 16px}
  .cf{padding:10px 16px}
  .mlist{display:block}
  .split{gap:12px}
  .stack{gap:12px}
  .lay{gap:12px}
  .idx .ch{display:none}
  table.dict,table.dict tbody,table.dict tr,table.dict td{display:block;width:auto}
  table.dict colgroup,table.dict thead{display:none}
  table.dict tr{padding:10px 16px;border-bottom:1px solid var(--hair);display:grid;grid-template-columns:62px 1fr;gap:2px 10px}
  table.dict td{padding:0!important;border:0!important}
  table.dict td.k{grid-row:span 2}
  table.dict td.en,table.dict td.vi-c,table.dict td.av-c,table.dict td.nt,table.dict td.lw,table.dict td.rv-c{grid-column:2}
  table.dict td.av-c:has(.faint),table.dict td.nt:has(.faint),table.dict td.lw:has(.faint){display:none}
  table.dict td.av-c:not(:has(.faint))::before{content:"Tránh dịch là: ";color:var(--faint);font-size:12px}
  table.dict tr.trap{box-shadow:inset 3px 0 var(--trap)}
  table.dict tr.trap td:first-child{box-shadow:none}
  table.dict tr.cmr{display:block}
  .rvb{flex-direction:row;margin-top:6px}
  .gnext{padding:12px 16px}
  .stbar{padding:9px 16px}
  .fw,body.wide .fw{flex-direction:column;align-items:flex-start;gap:10px;padding:24px 20px;min-height:0}
  .ftxt{display:contents}.ftxt .f2{order:5;font-size:12.5px}
  .foot .r{margin-left:0;flex-wrap:wrap;gap:8px 24px}
  .two{grid-template-columns:1fr}
  .fbody,.fbar{padding-left:16px;padding-right:16px}
  .tools{padding:0 16px}.fin{width:100%}.tools .seg-ctl{display:flex;width:100%}.tools .r{display:none}
  table.adm,table.adm tbody{display:block}
  table.adm colgroup,table.adm thead{display:none}
  table.adm tr{display:grid;grid-template-columns:24px 1fr auto auto;gap:4px 10px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--hair)}
  table.adm td{display:none;padding:0!important;border:0!important}
  table.adm td.grip,table.adm td.nm,table.adm td.vis,table.adm td.ed{display:block}
  table.adm td.nm{min-width:0}
  table.adm tr.sel{background:var(--sel);box-shadow:inset 3px 0 var(--blue)}
  table.adm tr.sel td{background:none;box-shadow:none!important}
  .ebar .btn.primary{margin-left:auto}
  table.adm tr.edit{display:block;padding:0}
  table.adm tr.edit>td{display:block}
  .ew{grid-template-columns:1fr}
  .ew .col+.col,.ew .col:nth-child(3){border-left:0;border-top:1px solid var(--hair)}
  .ew .col{padding:14px 16px}
  .ebar{padding:12px 16px}
  table.tk,table.tk tbody,table.tk tr,table.tk td,table.lg,table.lg tbody,table.lg tr,table.lg td,table.rvt,table.rvt tbody,table.rvt tr,table.rvt td{display:block;width:auto}
  table.tk thead,table.lg thead,table.rvt thead,table.tk colgroup,table.lg colgroup,table.rvt colgroup{display:none}
  table.tk tr,table.lg tr,table.rvt tr{padding:10px 16px;border-bottom:1px solid var(--hair)}
  table.tk td,table.lg td,table.rvt td{padding:2px 0!important;border:0!important}
  .rvsum{padding:0 16px}
  .lback{margin:0 16px}
  body.dang-nhap .body{padding:16px 0}
}
/* Từ điển — «Từ điển dùng để làm gì»: 4 ô ngang, kẻ hairline giữa các ô; điện thoại xếp dọc */
.purpose .pgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.purpose .pgrid>div{padding:14px 20px 16px;border-left:1px solid var(--hair);min-width:0}
.purpose .pgrid>div:first-child{border-left:0}
.purpose .pgrid>div>b{display:block;font-weight:650;font-size:14px;margin-bottom:4px}
.purpose p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}
.purpose p b{color:var(--ink);font-weight:650}
@media (max-width:1100px){.purpose .pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.purpose .pgrid>div:nth-child(3){border-left:0}.purpose .pgrid>div:nth-child(n+3){border-top:1px solid var(--hair)}}
@media (max-width:640px){.purpose .pgrid{grid-template-columns:minmax(0,1fr)}.purpose .pgrid>div{border-left:0}.purpose .pgrid>div+div{border-top:1px solid var(--hair)}.purpose .ch .note{display:none}}
/* Biểu mẫu (Forms) của dự án — chỉ xem (ảnh duyệt FV-9 phương án A, FV-9-m, FV-10, FV-10-m, FV-11, FV-11-m; 16/10/2026) */
.conn{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);background:var(--hair);border-radius:999px;padding:5px 12px;white-space:nowrap}
.conn i{width:7px;height:7px;border-radius:50%;background:#4cc38a}
.sync{display:flex;flex-direction:column;align-items:flex-end;font-size:12px;color:#a9bad0;line-height:1.35;margin-right:4px;align-self:center}
.sync b{color:#fff;font-weight:600;font-size:13px}
.head .acts{align-items:center}
.dd{height:40px;border:1px solid var(--edge);border-radius:10px;background:var(--surface);display:inline-flex;align-items:center;gap:8px;padding:0 12px;font-size:14px;color:var(--ink);white-space:nowrap;position:relative;cursor:pointer}
.dd .ic{color:var(--faint)}.dd .k{color:var(--muted)}.dd .ic:last-child{color:var(--muted);margin-left:2px;pointer-events:none}
.dd select{appearance:none;-webkit-appearance:none;border:0;background:none;font:600 14px "Be Vietnam Pro",system-ui,sans-serif;color:var(--ink);padding:0;cursor:pointer;max-width:230px;outline:0;text-overflow:ellipsis}
.dd:focus-within{outline:2px solid color-mix(in srgb,var(--blue) 45%,transparent);border-color:var(--blue)}
.fin.w{width:320px}
.tools .r{font-size:13px;color:var(--muted)}
table.fm{table-layout:fixed}
table.fm col.c-no{width:76px}table.fm col.c-ty{width:132px}table.fm col.c-dt{width:118px}table.fm col.c-who{width:210px}table.fm col.c-st{width:160px}table.fm col.c-act{width:104px}
table.fm td{padding-top:11px;padding-bottom:11px}
table.fm tbody tr{cursor:pointer}
table.fm tbody tr:hover td{background:var(--surface-2)}
table.fm .no{font:600 13px var(--mono);color:var(--muted)}
table.fm a.an:hover{color:var(--blue)}
.pp{display:flex;align-items:center;gap:9px;font-size:13.5px;white-space:nowrap;min-width:0}
.pp .mono{color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.acts2{display:flex;gap:6px;justify-content:flex-end}
table.fm tr.hov td,table.fm tr.hov:hover td{background:var(--sel)}
table.fm tr.hov td:first-child{box-shadow:inset 3px 0 var(--blue)}
.mk.del{color:var(--faint)}.mk.del i{background:var(--bar-plan)}
.mlist2{display:none}
.pager{display:inline-flex;gap:6px;align-items:center}
/* hàng thẻ biểu mẫu (chuẩn danh sách ngang ở trên) */
.strip{display:flex;gap:10px;align-items:stretch;overflow:hidden}
.strip .bk{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:13.5px;padding:0 14px 0 4px;white-space:nowrap;border-right:1px solid var(--edge);margin-right:2px;text-decoration:none}
.fc{flex:1 1 0;max-width:250px;background:var(--surface);border:1px solid var(--edge);border-radius:10px;padding:9px 13px;display:flex;flex-direction:column;gap:3px;min-width:0;color:var(--ink);text-decoration:none!important}
.fc:hover{border-color:var(--faint)}
.fc b{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc b .mono{color:var(--muted);margin-right:6px;font-weight:600}
.fc small{font-size:12px;color:var(--muted);display:flex;gap:6px;align-items:center;white-space:nowrap}
.fc small .mk{font-size:12px;font-weight:600;gap:6px}.fc small .mk i{width:8px;height:8px}
.fc.on{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue);background:var(--sel)}
.fc.more{flex:0 0 auto;justify-content:center;color:var(--blue);font-weight:600;font-size:13.5px;padding:0 16px}
/* vùng đọc */
.rd{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}
.rail{display:flex;flex-direction:column;gap:18px}
.doc{padding:6px 28px 24px}
.sec{padding:18px 0 6px;border-bottom:1px solid var(--hair);scroll-margin-top:12px}
.sec:last-child{border-bottom:0}
.sec h3{margin:0 0 10px;font-size:16px;font-weight:700;color:var(--grp-ink);display:flex;align-items:center;gap:10px}
.sec h3 .sn{width:24px;height:24px;border-radius:7px;background:var(--hair);color:var(--muted);font-size:12.5px;font-weight:700;display:inline-grid;place-items:center;flex:none}
.sec h3 small{font-size:12.5px;font-weight:500;color:var(--faint);margin-left:auto;white-space:nowrap}
.sec .sd{margin:-4px 0 8px;font-size:12.5px;color:var(--muted)}
.qa{display:grid;grid-template-columns:250px minmax(0,1fr);margin:0}
.qa dt,.qa dd{padding:9px 0;border-top:1px solid var(--hair);margin:0}
.qa dt:first-of-type,.qa dt:first-of-type+dd{border-top:0}
.qa dt{font-size:13.5px;color:var(--muted);padding-right:20px;line-height:1.45}
.qa dt .req{margin-left:3px}
.qa dd{font-size:14.5px;color:var(--ink);line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}
.nf{color:var(--faint);font-style:italic;font-size:13.5px}
.chip{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:13.5px;padding:2px 10px;border-radius:7px;background:color-mix(in srgb,var(--ok) 10%,var(--surface));color:var(--ok);white-space:normal}
.tb{margin:8px 0 12px}
.tbh{display:flex;align-items:baseline;gap:10px;font-size:13.5px;font-weight:600;color:var(--ink);margin-bottom:6px}
.tbh small{font-weight:400;color:var(--faint);font-size:12.5px}
.tbw{border:1px solid var(--edge);border-radius:8px;overflow:auto;max-width:760px}
table.mini{width:100%;border-collapse:collapse;font-size:13.5px}
table.mini th{font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);text-align:left;padding:7px 12px;background:var(--surface-2);border-bottom:1px solid var(--edge)}
table.mini td{padding:7px 12px;border-bottom:1px solid var(--hair);vertical-align:top}
table.mini tr:last-child td{border-bottom:0}
table.mini .n{text-align:right;font-variant-numeric:tabular-nums;width:110px}
table.mini td.empty{color:var(--faint);font-style:italic;font-size:13px;text-align:center;padding:10px 12px}
.sigok{display:inline-flex;align-items:center;gap:7px;color:var(--ok);font-weight:600}
/* cột phải */
.kv2{display:grid;grid-template-columns:110px minmax(0,1fr);gap:9px 12px;padding:14px 20px 16px;font-size:13.5px;margin:0}
.kv2 dt{color:var(--muted);margin:0}.kv2 dd{margin:0;color:var(--ink);min-width:0;overflow-wrap:anywhere}
.kv2 dd small{display:block;color:var(--faint);font-size:12px}
.toc{list-style:none;margin:0;padding:6px 0}
.toc li a{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 20px;font-size:13.5px;color:var(--ink);text-decoration:none}
.toc li a:hover{background:var(--hair)}
.toc li .sn{width:22px;height:22px;border-radius:6px;background:var(--hair);color:var(--muted);font-size:12px;font-weight:700;display:grid;place-items:center}
.toc li.on a{background:var(--sel);box-shadow:inset 3px 0 var(--blue)}.toc li.on b{color:var(--blue)}
.toc li b{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.toc li em{font-style:normal;font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}
.toc li em.w{color:var(--warn);font-weight:600}
.ro{display:flex;gap:9px;align-items:flex-start;padding:12px 20px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--hair);background:var(--surface-2)}
.ro .ic{margin-top:2px;color:var(--faint)}
/* FV-11: phần người lập / phần chờ giám sát */
.bnr{display:flex;gap:10px;align-items:flex-start;background:var(--warnbg);color:var(--warn);border-radius:9px;padding:10px 14px;font-size:13.5px;line-height:1.5;margin:16px 0 4px}
.bnr .ic{margin-top:2px}.bnr b{font-weight:650}
.lgd2{display:flex;gap:18px;font-size:12.5px;color:var(--muted);margin:10px 0 0;flex-wrap:wrap}
.lgd2 span{display:inline-flex;gap:7px;align-items:center}
.lgd2 i{width:12px;height:12px;border-radius:3px;flex:none}
.lgd2 i.by{background:var(--surface);border:1.5px solid var(--edge);box-shadow:inset 3px 0 #9fb2ca}
.lgd2 i.wt{background:var(--warnbg);border:1.5px dashed var(--trap)}
.qa dd.wt,.qa dt.wt{background:var(--warnbg)}
.qa dt.wt{box-shadow:inset 3px 0 var(--trap);padding-left:12px;border-top:1px dashed var(--trap)}
.qa dd.wt{border-top:1px dashed var(--trap);padding-right:12px}
.wpill{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:650;color:var(--warn);border:1.5px dashed var(--trap);border-radius:7px;padding:1px 9px;background:var(--surface);white-space:normal}
.who2{list-style:none;margin:0;padding:8px 0}
.who2 li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:4px 10px;padding:10px 20px}
.who2 .st{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;grid-row:span 3}
.who2 .st.ok{background:color-mix(in srgb,var(--ok) 14%,var(--surface));color:var(--ok)}
.who2 .st.wt{background:var(--warnbg);color:var(--warn);border:1.5px dashed var(--trap)}
.who2 b{font-size:13.5px;font-weight:650}.who2 small{display:block;font-size:12px;color:var(--muted);line-height:1.3}.who2 .pp{white-space:normal;line-height:1.3;margin:2px 0}
.who2 .ln{font-size:12.5px;color:var(--ink)}.who2 .ln.w{color:var(--warn);font-weight:600}
.who2 li+li{border-top:1px solid var(--hair)}
.xp{padding:14px 20px 16px;display:flex;flex-direction:column;gap:10px;font-size:13px;color:var(--muted)}
.xp .btn{width:100%}
.xp .mp{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--ink)}
.xp .mp .ic{color:var(--warn);margin-top:2px}
.soon{font-size:11.5px;font-weight:700;color:var(--warn);background:var(--warnbg);border-radius:6px;padding:1px 7px;margin-left:6px;white-space:nowrap}
.dlg .fbody p{line-height:1.55}
@media (max-width:1180px){
  .rd{grid-template-columns:minmax(0,1fr) 300px}
  .qa{grid-template-columns:200px minmax(0,1fr)}
  table.fm col.c-ty{width:0}table.fm .ty{display:none}
}
@media (max-width:1080px) and (min-width:761px){.tnav{gap:18px;margin-left:8px}}
@media (max-width:980px){
  .conn{display:none}
  .rd{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:760px){
  .conn,.sync .t2{display:none}
  body.du-an .crumbs{display:block;line-height:1.55;margin-bottom:-2px}
  body.du-an .cf .muted{flex:1;min-width:0}
  .head .acts{width:100%;flex-wrap:wrap;gap:8px}
  .head .acts .btn{flex:1 1 auto}
  .sync{width:100%;flex-direction:row;align-items:center;gap:6px}
  .tools{gap:8px}.tools .dd{flex:1;min-width:0;font-size:13px;padding:0 10px}.dd .k{display:none}.dd select{font-size:13px;min-width:0;width:100%}
  .fin.w{width:100%}
  table.fm{display:none}.mlist2{display:block}
  .m9{padding:11px 16px 12px;border-bottom:1px solid var(--hair);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;color:var(--ink);text-decoration:none!important}
  .m9:last-child{border-bottom:0}
  .m9.hov{background:var(--sel)}
  .m9 .l1{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--muted)}
  .m9 .l1 .mono{font-size:12px}
  .m9 .an{font-size:14.5px}
  .m9 .l3{font-size:12.5px;color:var(--muted);display:flex;gap:8px;align-items:center;min-width:0}
  .m9 .chev{grid-row:2/5;grid-column:2;align-self:center;color:var(--faint)}
  .strip{overflow-x:auto;padding:0 16px;gap:8px;scrollbar-width:none}.strip::-webkit-scrollbar{display:none}.strip .bk{display:none}.fc{flex:0 0 200px;max-width:none}
  .rd{display:flex;flex-direction:column;align-items:stretch;gap:12px}
  .rail{display:contents}
  .rd .first{order:-1}.rd .toc-card,.rd .xp-card{order:1}.rd .info-card{order:2}
  .doc{padding:0 16px 14px}
  .sec h3{font-size:15px}
  .qa{grid-template-columns:minmax(0,1fr)}
  .qa dt{padding:10px 0 0;border-top:1px solid var(--hair);font-size:12.5px}
  .qa dd{padding:2px 0 10px;border-top:0}
  .qa dt.wt{padding:10px 10px 0}.qa dd.wt{padding:2px 10px 10px;border-top:0}
  table.mini thead{display:none}
  table.mini tr{display:block;padding:7px 12px;border-bottom:1px solid var(--hair)}
  table.mini tr:last-child{border-bottom:0}
  table.mini td{display:block;padding:0;border:0;font-size:13px;line-height:1.45}
  table.mini td:first-child{font-weight:600;font-size:13.5px}
  table.mini td+td::before{content:attr(data-l) ": ";color:var(--muted)}
  table.mini td.empty{display:block;text-align:left}
  table.mini td.empty::before{content:none!important}
  table.mini .n{text-align:left;width:auto}
  .bnr{margin:12px 0 2px}
  .ch .note{display:none}
}

/* ---------- FV-7c: Ghép biểu mẫu (ảnh duyệt FV-7c-1…4, 16/10/2026) — thẻ trang trên dải xanh (lối vào A), bảng ghép, cột phải ---------- */
.band.bt .head{padding-bottom:8px}
.band .btabs{margin:0 28px;border-top:1px solid #ffffff1a;overflow-x:auto;scrollbar-width:none}
.band .btabs::-webkit-scrollbar{display:none}
.band .btabs a{color:#a9bad0;margin-bottom:0}
.band .btabs a:hover{color:#fff}
.band .btabs a.on{color:#fff;border-bottom-color:var(--sky)}
.band .btabs .cnt,.band .btabs a.on .cnt{background:#ffffff1f;color:#dbe6f3}
.band .btabs .cnt.warn,.band .btabs a.on .cnt.warn{background:#ffcf70;color:#3d2a00}
.trow{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.trow .r{margin-left:auto;font-size:13px;color:var(--muted)}
.seg-ctl .n{font-style:normal;font-size:12.5px;color:var(--faint);font-weight:700}
.strip.wrap{flex-wrap:wrap}.strip.wrap .fc{flex:0 0 232px}
.fc .src{font-weight:600;overflow:hidden;text-overflow:ellipsis}
.fc .src.ok{color:var(--ok)}.fc .src.ed{color:var(--warn)}.fc .src.bad{color:var(--danger)}.fc .src.vio{color:var(--vio)}.fc .src.plan{color:var(--muted)}
.fc .src i{display:inline-block;width:8px;height:8px;border-radius:2px;background:currentColor;margin-right:5px;vertical-align:0}
button.fc{font:inherit;text-align:left;cursor:pointer}
.gw{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}
.ch .r .btn{min-height:38px}
.ch h2 .pl{font-size:12px}
.meta7{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid var(--hair);font-size:13px;color:var(--muted)}
.meta7 .ed{color:var(--warn);font-weight:600;display:inline-flex;gap:6px;align-items:center}
.meta7 .btn{margin-left:auto}
.upd7{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 20px;border-bottom:1px solid var(--hair);background:var(--sel);color:var(--ink);font-size:13px}
.upd7 .ic{color:var(--blue)}.upd7 .btn{margin-left:auto}
.xrow{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--hair);flex-wrap:wrap}
.xrow>span:first-child{font-size:13.5px;color:var(--muted);white-space:nowrap}
.xsel{position:relative;flex:1;max-width:620px;min-height:42px;border:1px solid var(--edge);border-radius:10px;background:var(--surface);display:flex;align-items:center;gap:10px;padding:0 12px;font-size:14px}
.xsel b{font-weight:600}.xsel small{color:var(--muted);font-size:12.5px;white-space:nowrap}.xsel .sp{flex:1}
.xsel .ic{color:var(--faint)}.xsel.lk{background:var(--surface-2)}
.xsel:focus-within,.fs:focus-within,.aw:focus-within{outline:2px solid color-mix(in srgb,var(--blue) 45%,transparent);outline-offset:1px}
/* ô chọn thật (native select) phủ trong suốt lên ô vẽ — bàn phím, điện thoại, trình đọc màn hình dùng được */
.pick{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;margin:0;font-size:16px}
.sumb{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap;padding:12px 20px 4px}
.sumb>b{font-size:14px}
.sumb .sep{width:1px;height:18px;background:var(--edge)}
.sumb .aw{height:26px}
.hint7{font-size:12.5px;color:var(--muted);padding:0 20px 12px}
.notes7{font-size:13px;color:var(--muted);padding:12px 20px;border-bottom:1px solid var(--hair)}
.mk.vio{color:var(--vio)}.mk.vio i{background:var(--vio)}
.mk.bad{color:var(--danger)}.mk.bad i{background:var(--danger)}
.pl{display:inline-block;font:600 11.5px/1.5 "Be Vietnam Pro",system-ui,sans-serif;padding:1px 7px;border-radius:6px;background:var(--hair);color:var(--muted);margin-left:4px;white-space:nowrap;vertical-align:1px}
.pl.tach{background:var(--tach-s);color:var(--warn)}
.pl.red{background:var(--bad-t);color:var(--danger)}
.pl.oc{background:var(--sel);color:var(--blue)}
.pl.own{background:var(--hair);color:var(--ink)}
.pl.new{background:var(--sel);color:var(--blue)}
table.gm{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13.5px}
table.gm th{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);text-align:left;padding:10px;border-bottom:1px solid var(--edge);border-top:1px solid var(--edge);background:var(--surface-2);white-space:nowrap}
table.gm th:first-child,table.gm td:first-child{padding-left:20px}
table.gm th:last-child,table.gm td:last-child{padding-right:16px}
table.gm td{padding:9px 10px;border-bottom:1px solid var(--hair);vertical-align:middle}
table.gm tbody tr:last-child td{border-bottom:0}
table.gm col.c-a{width:26px}table.gm col.c-f{width:262px}table.gm col.c-w{width:148px}table.gm col.c-v{width:146px}table.gm col.c-s{width:136px}
table.gm tr.g td{background:var(--grp);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);padding-top:8px;padding-bottom:8px}
table.gm tr.g.add td{background:var(--add-s);color:var(--warn)}
table.gm tr.h td{border-bottom:0;padding-bottom:0;font-family:"Times New Roman",Times,serif;font-size:14.5px;line-height:1.4;color:var(--ink)}
td.lw{font-family:"Times New Roman",Times,serif;font-size:14.5px;line-height:1.4;color:var(--ink)}
td.ad7{font-size:13.5px;line-height:1.4;color:var(--ink)}
td.sp7{padding-left:38px!important}
td.c-a{color:var(--faint);padding:0!important;text-align:center}
td.c-a .ic{display:inline-block}
.fs{position:relative;display:flex;align-items:center;gap:8px;min-height:40px;padding:4px 10px;border:1px solid var(--edge);border-radius:9px;background:var(--surface)}
.fs .t{flex:1;min-width:0;line-height:1.3}
.fs .t b{font-weight:500;display:block;font-size:13.5px;color:var(--ink);overflow-wrap:anywhere}
.fs .t small{display:block;font-size:11.5px;color:var(--muted)}
.fs>.ic{color:var(--faint);flex:none}
.fs.sug{border-color:var(--vio-e);background:var(--vio-s)}
.fs.none{border-style:dashed;border-color:var(--grip);background:var(--surface-2);color:var(--faint)}
.fs.red{border-color:var(--bad-e);color:var(--danger)}
.fs.miss .t b{color:var(--warn)}.fs.miss>.ic:first-child{color:var(--warn)}
.fs.fix{background:var(--surface-2)}
.fs.fix .t b{color:var(--muted)}
.fs.lk{background:var(--surface-2);border-color:var(--hair)}
.fs.lk.none{border-style:solid}
.edn{display:flex;gap:5px;align-items:center;font-size:11.5px;color:var(--warn);margin-top:4px;font-weight:600;font-family:"Be Vietnam Pro",system-ui,sans-serif}
.edn.new{color:var(--blue)}
.aw{position:relative;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 9px;border-radius:8px;font-size:12.5px;font-weight:600;white-space:nowrap;max-width:100%}
.aw .ic{flex:none}
.aw .dn{margin-left:auto;color:var(--faint)}
.aw.lap{background:var(--surface);border:1px solid var(--edge);box-shadow:inset 3px 0 #9fb2ca;color:var(--ink)}
.aw.gs{background:var(--warnbg);border:1.5px dashed var(--trap);color:var(--warn)}
.aw.k5{background:var(--surface-2);border:1px solid var(--hair);color:var(--muted);font-weight:500}
.aw.q{border:1px dashed var(--grip);color:var(--faint);font-weight:500}
.aw.sg{border:1px solid var(--vio-e);background:var(--vio-s);color:var(--vio)}
.aw.ro{box-shadow:none}
.aw.ro.lap{border-color:transparent;background:transparent;padding-left:0}
td.c-v{font-size:12.5px;color:var(--ink);line-height:1.4;overflow-wrap:anywhere}
td.c-v .vt{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
td.c-v .nf{font-size:12.5px}
.wt7{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--warn)}
.wt7 .ic{display:inline-block}
.na{display:flex;gap:5px;margin-top:6px}
.na .btn{min-height:28px;height:28px;padding:0 8px;font-size:12.5px;border-radius:8px;gap:4px}
.na .btn.y{color:var(--ok)}
table.gm tr.bad td{background:var(--bad-s)}
table.gm tr.bad td:first-child{box-shadow:inset 3px 0 var(--danger)}
table.gm tr.edt td{background:var(--ed-s)}
table.gm tr.edt td:first-child{box-shadow:inset 3px 0 var(--trap)}
table.gm tr.chg td{background:var(--chg)}
table.gm tr.chg td:first-child{box-shadow:inset 3px 0 var(--blue)}
.st7{padding:28px 20px;color:var(--muted);text-align:center}
/* cột phải */
.ppr{margin:14px 16px 4px;border:1px solid var(--edge);border-radius:8px;background:#fff;padding:14px;font:12px/1.6 "Times New Roman",Times,serif;color:#000;max-height:520px;overflow:auto}
.ppr .pt{text-align:center;font-weight:700;font-size:12.5px;margin-bottom:6px;text-transform:uppercase}
.ppr p{margin:3px 0}
.fmk{background:#e0f4f8;box-shadow:inset 0 -1.5px 0 #0e7490;padding:0 2px}
.wtk{background:#fff5df;border:1px dashed #d39a1c;padding:0 3px;border-radius:3px;color:#8a5a00;font-family:"Be Vietnam Pro",system-ui,sans-serif;font-size:11px}
.gapk{border:1px dashed #c0362c;background:#fdecea;color:#c0362c;padding:0 3px;border-radius:3px;font-family:"Be Vietnam Pro",system-ui,sans-serif;font-size:11px}
.ppr .nfk{color:#667085;font-style:italic}
.pv0{padding:16px 20px;font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.lg7{display:flex;gap:6px 14px;flex-wrap:wrap;font-size:12px;color:var(--muted);padding:6px 16px 4px}
.lg7 span{display:inline-flex;align-items:center;gap:6px}
.lg7 i{width:12px;height:10px;border-radius:2px;display:inline-block}
.lg7 i.f{background:#e0f4f8;box-shadow:inset 0 -1.5px 0 #0e7490}.lg7 i.w{background:#fff5df;border:1px dashed #d39a1c}.lg7 i.g{background:#fdecea;border:1px dashed #c0362c}
.pv-ft{display:flex;flex-direction:column;gap:6px;font-size:12.5px;padding:8px 16px 14px}
.pv-ft span{display:flex;gap:7px;align-items:flex-start}
.pv-ft .ic{margin-top:2px;flex:none}
.pv-ft .bad{color:var(--danger)}.pv-ft .vio{color:var(--vio)}.pv-ft .ok{color:var(--ok)}
.chipf{position:relative;height:32px;display:inline-flex;align-items:center;gap:6px;border:1px solid var(--edge);border-radius:9px;padding:0 10px;font-size:13px;margin-left:auto;background:var(--surface);color:var(--ink);white-space:nowrap}
.chipf .ic{color:var(--faint)}
.who7{list-style:none;margin:0;padding:6px 0}
.who7 li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:10px 20px;align-items:center}
.who7 li+li{border-top:1px solid var(--hair)}
.who7 li small{grid-column:1/-1;font-size:12.5px;color:var(--muted);line-height:1.45}
.who7 li em{font-style:normal;font-weight:700;font-size:13px;color:var(--ink)}
.who7 .aw{justify-self:start}
.rx{padding:12px 20px 16px;font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:8px;line-height:1.5}
.rx .me2{display:flex;gap:9px;align-items:center;color:var(--ink);font-weight:600}
.rx .me2 .ic{color:var(--ok)}.rx .me2.no .ic{color:var(--faint)}
.rx .pp{white-space:normal}
.av.s{width:26px;height:26px;font-size:10.5px}
.ro7{display:flex;gap:10px;align-items:flex-start;padding:12px 20px;border-bottom:1px solid var(--hair);background:var(--surface-2);font-size:13.5px;color:var(--ink);line-height:1.5}
.ro7 .ic{margin-top:2px;color:var(--muted);flex:none}
.ro7 small{display:block;color:var(--muted);font-size:12.5px}
.lockp{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--muted);background:var(--hair);border-radius:8px;padding:5px 10px}
/* FV-7c-4: ô «Xuất theo thể thức» khi mẫu chưa ghép + FV-11 ô giám sát người lập điền trước */
.xp .warnl{display:flex;gap:8px;align-items:flex-start;color:var(--ink);font-size:13px;line-height:1.5}
.xp .warnl .ic{color:var(--warn);margin-top:2px;flex:none}
.xp .okl{display:flex;gap:8px;align-items:flex-start;color:var(--ink);font-size:13px;line-height:1.5}
.xp .okl .ic{color:var(--ok);margin-top:2px;flex:none}
.xp .btn.sec{background:var(--surface)}
.gsl{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;margin-top:3px;font-size:12px;white-space:normal}
.gsl .gs{display:inline-flex;align-items:center;gap:5px;font-weight:600;color:var(--warn)}
.gsl .gs .ic{display:inline-block}
@media (max-width:1180px){.gw{grid-template-columns:minmax(0,1fr) 300px}table.gm col.c-f{width:220px}table.gm col.c-v{width:120px}}
@media (max-width:980px){.gw{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){
  .band.bt .head{padding-bottom:6px}
  .band .btabs{margin:0 16px}
  .trow{padding:0 16px}.trow .r{display:none}
  .trow .seg-ctl{overflow-x:auto;max-width:100%;scrollbar-width:none}
  .trow .seg-ctl button{flex:none;padding:0 10px;font-size:13.5px}
  .strip.wrap{flex-wrap:nowrap}.strip.wrap .fc{flex:0 0 200px}
  .gw{display:flex;flex-direction:column;align-items:stretch;gap:12px}
  .gw .rail{display:flex;flex-direction:column;gap:12px}
  td.c-v.e{display:none!important}
  .gw .pv-card{display:none}
  .gw .ch h2{flex-wrap:wrap}
  .gw .ch .r{margin-left:0;width:100%;gap:10px}.gw .ch .r .btn{flex:1}
  .meta7{padding:10px 16px}.meta7 .btn{margin-left:0;width:100%}
  .upd7{padding:10px 16px}.upd7 .btn{margin-left:0;width:100%}
  .xrow{padding:10px 16px}.xsel{max-width:none;width:100%}
  .xsel small{display:none}
  .sumb{padding:10px 16px 2px;gap:6px 12px}.sumb .sep{display:none}
  .hint7{display:none}
  .notes7{padding:10px 16px}
  table.gm,table.gm tbody{display:block}
  table.gm colgroup,table.gm thead{display:none}
  table.gm tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 10px;padding:11px 16px;border-bottom:1px solid var(--hair);align-items:center}
  table.gm tr.g,table.gm tr.h{display:block;padding:8px 16px}
  table.gm tr.h{padding-bottom:0;border-bottom:0}
  table.gm td{display:block;padding:0!important;border:0!important;background:none!important;box-shadow:none!important}
  table.gm tr.bad{background:var(--bad-s);box-shadow:inset 3px 0 var(--danger)}
  table.gm tr.edt{background:var(--ed-s);box-shadow:inset 3px 0 var(--trap)}
  table.gm tr.chg{background:var(--chg);box-shadow:inset 3px 0 var(--blue)}
  table.gm tr.g.add{background:var(--add-s)}
  td.sp7{padding-left:12px!important}
  td.c-a{display:none!important}
  td.c-m{grid-column:1/-1;order:1}
  td.c-f{grid-column:1/-1;order:2}
  td.c-w{grid-column:1;order:3}
  td.c-s{grid-column:2;order:4;justify-self:end;text-align:right}
  td.c-v{grid-column:1/-1;order:5;color:var(--muted)}
  td.c-v[data-l]::before{content:attr(data-l);color:var(--faint)}
  td.c-v .vt{display:inline;-webkit-line-clamp:unset}
  .na{justify-content:flex-end}
  .ro7{padding:10px 16px}
  .rx{padding:12px 16px 14px}
}

/* ---------- FV-4c: xem trước và xuất văn bản theo thể thức (ảnh duyệt FV-4c-1, FV-4c-2 + -m, -m-soat; 16/10/2026) ----------
   Tên lớp mang tiền tố x (xdesk, xpick, xsw…) để không trùng .desk / .pick / .sw có sẵn. Tờ giấy luôn nền trắng (cả nền tối) như bản in;
   màu đánh dấu (xanh lấy từ Forma / vàng đã sửa ở đây / đỏ còn trống) chỉ có trên màn hình. Thu phóng trang gán bằng JS (CSSOM). */
:root{--xd:#e6ebf1;--xd-bar:#eef2f6;--xd-edge:#d7dee8;--xf-bg:#e0f4f8;--xf-ink:#0e7490;--xe-bg:#fff1c2;--xe-ink:#8a5a00;--xe-edge:#e9c46a;--xe-fill:#fffbeb;
  --xg-bg:#fdecea;--xg-ink:#b42318;--xg-edge:#e7a29b;--xg-fill:#fff8f7}
@media (prefers-color-scheme:dark){
  :root{--xd:#0b1728;--xd-bar:#0e1d31;--xd-edge:#22385a;--xf-bg:#0f3440;--xf-ink:#7fd3e6;--xe-bg:#3a2c0e;--xe-ink:#f0c060;--xe-edge:#6b5420;--xe-fill:#2a220f;
    --xg-bg:#3a1a18;--xg-ink:#f2867a;--xg-edge:#6b2f29;--xg-fill:#2b1616}
}
.btn.ghost.xks:disabled{opacity:1;color:#8fa4bf;border-color:#ffffff26;border-style:dashed}
.btn.ghost.xks .soon{background:#ffffff1a;color:#ffcf70}
.xl{display:inline}
/* hàng trên vùng làm việc */
.xbar{display:flex;align-items:center;gap:12px 18px;flex-wrap:wrap}
.xbar .xbk{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:13.5px;padding:0 16px 0 4px;white-space:nowrap;border-right:1px solid var(--edge);height:30px;text-decoration:none}
.xtpl{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink);min-width:0;flex-wrap:wrap}
.xtpl .ic{color:var(--faint)}.xtpl small{color:var(--muted);font-size:12.5px}
.xbar .xlgd{margin-left:auto}
.xlgd{display:flex;gap:14px;font-size:12.5px;color:var(--muted);align-items:center;flex-wrap:wrap}
.xlgd span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.xlgd i{width:14px;height:10px;border-radius:2px;display:inline-block;flex:none}
.xlgd i.f{background:#e0f4f8;box-shadow:inset 0 -2px 0 #0e7490}.xlgd i.e{background:#fff1c2;box-shadow:inset 0 -2px 0 #b7791f}.xlgd i.g{background:#fdecea;border:1px dashed #c0362c}
/* vùng làm việc: giấy + cột soát */
.xw{width:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 410px;gap:18px;align-items:start}
.xdesk{background:var(--xd);border:1px solid var(--edge);border-radius:10px;padding:0 0 28px;display:flex;flex-direction:column;align-items:center;min-width:0;overflow:hidden}
.xtool{width:100%;display:flex;align-items:center;gap:6px 10px;padding:10px 16px;font-size:12.5px;color:var(--muted);border-bottom:1px solid var(--xd-edge);background:var(--xd-bar);margin-bottom:24px;flex-wrap:wrap}
.xtool b{color:var(--ink);font-weight:600}
.xtool .ic{color:var(--faint)}
.xzm{margin-left:auto;display:flex;gap:4px;align-items:center}
.xzm button{width:30px;height:28px;display:grid;place-items:center;border:1px solid var(--edge);border-radius:8px;background:var(--surface);color:var(--muted);padding:0}
.xzm button:disabled{opacity:.5;cursor:default}
.xzm em{font-style:normal;font-weight:600;color:var(--ink);padding:0 6px;min-width:48px;text-align:center}
.xdraft{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:#b42318;background:#fdecea;border-radius:6px;padding:1px 8px;font-size:12px}
.xoff{display:inline-flex;align-items:center;gap:5px;font-weight:700;color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,transparent);border-radius:6px;padding:1px 8px;font-size:12px}
.xscroll{width:100%;overflow-x:auto;display:flex;justify-content:center;padding:0 12px}
.xa4s{display:flex;flex-direction:column;gap:22px;align-items:center;flex:none}
/* trang A4 theo đơn vị pt của bản in (595 × 842), lề NĐ 30: trên 20, dưới 20, trái 30, phải 15 mm */
.xa4{width:595px;height:842px;background:#fff;border:1px solid #c9d1dc;box-shadow:0 6px 18px #1018281f;position:relative;overflow:hidden;color:#000;flex:none;
  font:13px/1.25 "Times New Roman",Tinos,"Liberation Serif",Times,serif;color-scheme:light;-webkit-text-size-adjust:100%;text-size-adjust:100%}
.xa4 .xbd{position:absolute;left:85px;right:42.5px;top:56.7px;height:714.5px;overflow:hidden}
.xmeasure{position:absolute;left:-10000px;top:0;visibility:hidden;pointer-events:none}
.xpno{position:absolute;left:0;right:0;top:25px;text-align:center}
.xft{position:absolute;left:85px;right:42.5px;top:789.4px;border-top:.4px solid #98a2b3;padding-top:2px;display:flex;justify-content:space-between;gap:12px;
  font:7.5px/1.3 "Be Vietnam Pro",sans-serif;color:#667085}
.xft span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.xwm{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;z-index:2}
.xwm span{transform:rotate(-54.7deg) translateY(28px);font:700 110px/1 "Times New Roman",Tinos,serif;color:#e3a3a3;opacity:.3;letter-spacing:4px;white-space:nowrap}
.xa4 p{margin:0 0 6px;text-align:justify}
.xa4 .c{text-align:center}.xa4 .l{text-align:left}
.xa4 p.tach{text-align-last:justify;margin-bottom:0}
.xa4 b{font-weight:700}.xa4 i{font-style:italic}
.xhd{display:grid;grid-template-columns:212px 1fr;column-gap:6px;text-align:center;margin-bottom:14px}
.xhd .t12{font-size:12px;line-height:15px}
.xhd .fit.one{white-space:nowrap;overflow:hidden}
.xhd .ul{display:block;width:60px;border-top:.6px solid #000;margin:4px auto 7px}
.xhd .ul.l{width:auto;display:inline-block;border-top:0;border-bottom:.6px solid #000;padding-bottom:1px;margin:0 0 7px}
.xhd .so{margin-top:4px}
.xten{font-weight:700;font-size:14px;line-height:18px;text-align:center;text-transform:uppercase;margin:0 0 2px}
table.xnl{border-collapse:collapse;font-size:12px;line-height:1.2;margin:0 0 6px;table-layout:fixed}
/* hàng cao = số dòng × 14,4 + 6 như bản in (lib/the-thuc.js table) — đệm trừ phần viền */
table.xnl td,table.xnl th{border:.6px solid #000;padding:2.7px 4px;vertical-align:top;overflow-wrap:anywhere}
table.xnl th{font-weight:700;text-align:center}
table.xnl .n{text-align:right}table.xnl .tt{text-align:center}table.xnl tfoot td{font-weight:700}
.xsg{display:grid;grid-template-columns:1fr 1fr;column-gap:20px;text-align:center;margin-top:8px;padding-bottom:10px}
.xsg.one{grid-template-columns:62%;justify-content:center}
.xsg .tdk{font-weight:700;line-height:16px}
.xsg .kgh{font-style:italic;line-height:17px}
.xsg .nm{margin-top:64px;font-weight:700;line-height:17px}.xsg .nm.dt{font-weight:400}
.xsg .cv{line-height:17px}
.xnote{font-size:10.5px;line-height:1.3;text-align:left;margin-top:4px}
.xk-f{background:#e0f4f8;box-shadow:inset 0 -1.5px 0 #0e7490;border-radius:2px}
.xk-e{background:#fff1c2;box-shadow:inset 0 -1.5px 0 #b7791f;border-radius:2px}
.xk-g{background:#fdecea;outline:1px dashed #c0362c;outline-offset:-1px;border-radius:2px}
.xk-d{letter-spacing:0}
/* khối ký Điều 23, 24: lời dặn một dòng, dòng giấy ủy quyền, nhóm theo bên (lib/the-thuc.js signatures) */
.xsg .kgh{white-space:nowrap}
.xsg .phu{font-style:italic;font-size:12px;line-height:15px}
.xsgb .xsg{margin-top:0}
.xsgn{font-weight:700;line-height:16px;text-align:center;margin:0 0 6px}
.xsgb.dau{margin-top:8px}
/* cột Soát */
.xsv .ch h2 .ic{color:var(--muted)}
.xleft{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--warn);background:var(--warnbg);border-radius:999px;padding:2px 10px;white-space:nowrap}
.xleft.bad{color:var(--danger);background:var(--bad-t)}.xleft.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,transparent)}
.xsec{padding:14px 20px 16px;display:flex;flex-direction:column;gap:12px}
.xsec+.xsec{border-top:1px solid var(--hair)}
.xsec h4{margin:0;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;display:flex;gap:8px;align-items:center}
.xsec h4 small{text-transform:none;letter-spacing:0;font-weight:500;color:var(--faint);font-size:12px}
.xtwo{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.xfld{display:flex;flex-direction:column;gap:5px;min-width:0;scroll-margin-top:80px}
.xfld>label,.xfld>.lb{font-size:13px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.xv{border:1px solid var(--edge);border-radius:9px;padding:8px 11px;font-size:14px;background:var(--surface);min-height:40px;display:flex;align-items:center;gap:8px;line-height:1.4;
  width:100%;text-align:left;color:var(--ink);cursor:pointer}
.xv:hover{border-color:var(--faint)}
.xv>span{min-width:0;overflow-wrap:anywhere}
.xv .ic{color:var(--faint);margin-left:auto;flex:none}
.xv.e{border-color:var(--xe-edge);background:var(--xe-fill)}
.xv.g{border:1.5px dashed var(--xg-edge);background:var(--xg-fill);color:var(--danger);font-size:13.5px}
.xfld>small{font-size:12px;color:var(--muted);line-height:1.4}
.xfld>small.w{color:var(--danger)}
.xt{font-size:11px;font-weight:700;padding:1px 7px;border-radius:6px;white-space:nowrap;letter-spacing:0}
.xt.f{background:var(--xf-bg);color:var(--xf-ink)}.xt.e{background:var(--xe-bg);color:var(--xe-ink)}.xt.g{background:var(--xg-bg);color:var(--xg-ink)}
.xt.p{background:var(--hair);color:var(--muted)}.xt.w{background:var(--warnbg);color:var(--warn)}
.xrows{display:flex;flex-direction:column;border:1px solid var(--edge);border-radius:10px;overflow:hidden}
.xrw{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:9px 12px;align-items:center;scroll-margin-top:80px}
.xrw+.xrw{border-top:1px solid var(--hair)}
.xrw .l{font-size:12.5px;color:var(--muted);display:flex;gap:6px;align-items:center;min-width:0;flex-wrap:wrap}
.xrw .val{grid-column:1;font-size:13.5px;color:var(--ink);line-height:1.4;overflow-wrap:anywhere}
.xrw .val b{font-weight:600}
.xrw>.xt{grid-row:1;grid-column:2;justify-self:end}
.xrw .pen{grid-row:2;grid-column:2;justify-self:end;color:var(--faint);background:none;border:0;padding:2px;border-radius:6px;display:grid;place-items:center}
.xrw .pen:hover{color:var(--blue)}
.xrw.e{background:var(--xe-fill)}.xrw.g{background:var(--xg-fill);box-shadow:inset 3px 0 #c0362c}
.xrw.g .val{color:var(--danger);font-size:13px}
.xrw .sub{grid-column:1/-1;font-size:12px;color:var(--muted)}
.xrw.ed{grid-template-columns:1fr}
.xed{display:flex;flex-direction:column;gap:8px}
.xed textarea,.xed input[type=text]{width:100%;border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:var(--surface);font-size:14px;line-height:1.45;resize:vertical}
.xed textarea{min-height:64px}
.xed .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.xed .row .sp{flex:1}
.xed label.ck{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:var(--muted);font-weight:500}
.xed label.ck input{margin-top:2px}
.xed small{font-size:12px;color:var(--muted)}
.xed .lk{font-size:12px;font-weight:600;color:var(--muted)}
.xsgr{border:1px solid var(--edge);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;scroll-margin-top:80px}
.xsgr.g{border-color:var(--xg-edge);background:var(--xg-fill)}
.xsgr>small{font-size:12px;color:var(--muted);line-height:1.4}
.xsgr .seg-ctl{display:flex}.xsgr .seg-ctl button{flex:1;gap:6px}
.xpp{display:flex;align-items:center;gap:10px;border:1px solid var(--edge);border-radius:9px;padding:7px 10px;background:var(--surface);position:relative}
.xpp b{display:block;font-size:13.5px;font-weight:600;line-height:1.25}.xpp small{display:block;font-size:12px;color:var(--muted)}
.xpp>.ic{margin-left:auto;color:var(--faint)}
.xpp select{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;font-size:16px}
.xpp:focus-within{outline:2px solid var(--blue);outline-offset:1px}
.xpp.g b{color:var(--danger)}
.av.x1{background:#0f766e}.av.x2{background:#0369a1}.av.x3{background:#7c3aed}.av.x4{background:#b45309}.av.x5{background:#be123c}.av.x6{background:#4d7c0f}
.av.xs{width:28px;height:28px;font-size:11px}
.xhand{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;color:var(--ink);background:var(--surface-2);border:1px dashed var(--edge);border-radius:9px;padding:8px 10px;line-height:1.45}
.xhand .ic{color:var(--faint);margin-top:2px}
.xcbx{display:flex;gap:9px;align-items:center;font-size:13.5px;font-weight:500;cursor:pointer}
.xcbx input{width:17px;height:17px;margin:0;accent-color:var(--blue)}
.xfoot{padding:14px 20px 16px;border-top:1px solid var(--edge);background:var(--surface-2);display:flex;flex-direction:column;gap:10px}
.xfoot .btn,.xmbar .btn{width:100%}
.xfoot .btn:disabled,.xmbar .btn:disabled{border-style:dashed;color:var(--muted);opacity:1}
.xfoot p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.5}
.xmiss{margin:14px 20px 0;border:1px solid var(--danger-edge);background:var(--xg-fill);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;font-size:13px}
.xmiss>b{color:var(--danger);display:flex;gap:7px;align-items:center}
.xmiss ul{margin:0;padding-left:18px;color:var(--ink);display:flex;flex-direction:column;gap:2px}
.xmiss a{font-weight:600}
.xmiss p{margin:0;font-size:12.5px;color:var(--muted)}
.xnote2{font-size:12px;color:var(--muted);line-height:1.45}
.xflash{animation:xflash 1.4s ease-out}
@keyframes xflash{0%{box-shadow:0 0 0 3px var(--blue)}100%{box-shadow:0 0 0 0 transparent}}
.xsoon{display:flex;flex-direction:column;gap:12px}
/* cột Soát Điều 23, 24 (ảnh FV-4c-3, FV-4c-4) */
.xsec.xsec-bn{padding-bottom:0}
.xbnr4{display:flex;gap:9px;align-items:flex-start;border:1px solid var(--sel-edge);background:var(--sel);border-radius:10px;padding:9px 12px;font-size:12.5px;color:var(--ink);line-height:1.5}
.xbnr4 .ic{color:var(--blue);flex:none;margin-top:2px}
.xvs{position:relative}
.xvs select{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;font-size:16px}
.xvs:focus-within{outline:2px solid var(--blue);outline-offset:1px}
.xpc{border:1px solid var(--edge);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;scroll-margin-top:80px}
.xpc.g{border:1.5px dashed var(--xg-edge);background:var(--xg-fill)}
.xpc>small{font-size:12px;color:var(--muted);line-height:1.4}
.xpc>small.lb{display:flex;gap:6px;align-items:center;font-size:12.5px;font-weight:600;color:var(--ink)}
.xro{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.4;cursor:pointer}
.xro input{width:16px;height:16px;margin:1px 0 0;accent-color:var(--blue);flex:none}
.xro.on{font-weight:600}
.xpcs{display:flex;flex-direction:column;gap:8px;padding-left:25px;align-items:flex-start}
.xpcs>small{font-size:12px;color:var(--muted)}
.xpcs>.xfi{align-self:stretch}
.xfi{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--muted);min-width:0}
.xfi>span{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.xfi input,.xfi textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:7px 10px;background:var(--surface);color:var(--ink);font-size:13.5px;font-weight:400;line-height:1.45}
.xfi textarea{resize:vertical;min-height:64px}
.xsep{font-size:12px;color:var(--muted);line-height:1.45}
.xben{border:1px solid var(--edge);border-radius:10px;overflow:hidden;scroll-margin-top:80px}
.xben.off{border-style:dashed}
.xben.off.g{border-color:var(--xg-edge);background:var(--xg-fill)}
.xbh{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--surface-2);border-bottom:1px solid var(--hair)}
.xben.off .xbh{background:transparent;border-bottom:0}
.xbh>b{font-size:13.5px;flex:1;line-height:1.3;min-width:0}
.xbh .org{display:block;font-size:12px;color:var(--muted);font-weight:500}
.xbh>input[type=checkbox]{width:17px;height:17px;margin:0;accent-color:var(--blue);flex:none}
.xbh .pen{color:var(--faint);background:none;border:0;padding:4px;border-radius:6px;display:grid;place-items:center;cursor:pointer;flex:none}
.xbh .pen:hover{color:var(--blue)}
.xbh .xcbx{font-size:13px}
.xbb{padding:10px 12px;display:flex;flex-direction:column;gap:9px}
.xben.off .xbb{padding-top:0}
.xbb .law{font-size:12px;color:var(--muted);line-height:1.4}
.xbb .sub{font-size:12.5px;font-weight:600;color:var(--ink)}
.xbb .seg-ctl{display:flex}.xbb .seg-ctl button{flex:1}
.xppb{width:100%;text-align:left;color:var(--ink);font:inherit;cursor:pointer}
.xppb:hover{border-color:var(--faint)}
.xppb>span:nth-child(2){min-width:0;flex:1}
.xppb>.ic{color:var(--faint);flex:none;margin-left:0}
.xuqf{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.xwarn{display:flex;gap:7px;align-items:flex-start;font-size:12.5px;line-height:1.45;color:var(--warn);background:var(--warnbg);border-radius:9px;padding:7px 10px}
.xwarn .ic{flex:none;margin-top:2px}
.xsgr>small{display:flex;gap:6px;align-items:center}
.xsgr.phang,.xsgr.phang.g{border:0;padding:0;background:none}
.xsgr.phang.g .xpp{border:1.5px dashed var(--xg-edge);background:var(--xg-fill)}
/* điện thoại: thẻ «Xem trước | Soát» */
.xmtabs,.xmbar,.xmlgd,.xtapz,.xbk-m{display:none}
@media (max-width:980px){.xw{grid-template-columns:minmax(0,1fr) 360px}}
@media (max-width:760px){
  .xl{display:none}
  main.xmain{padding-top:0}
  .head .acts .xbk-m{display:inline-flex}
  .xbar{display:none}
  .xmtabs{display:flex;background:var(--surface);border-bottom:1px solid var(--edge);padding:0 6px;margin:0}
  .xmtabs a{flex:1;justify-content:center}
  .xw{grid-template-columns:minmax(0,1fr);gap:0}
  .xw.x-pv .xsv{display:none}.xw.x-sw .xdesk{display:none}
  .xdesk{border-radius:0;border-left:0;border-right:0;padding-bottom:18px}
  .xtool{margin-bottom:14px;padding:8px 16px}
  .xzm{display:none}
  .xmlgd{display:block;padding:0 16px 12px;width:100%}
  .xtapz{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--muted);margin-top:12px;background:none;border:0;padding:4px}
  .xa4s{gap:12px}
  .xsv{border-radius:0;border-left:0;border-right:0}
  .xsv .ch{padding:12px 16px}
  .xsec{padding:12px 16px 14px}
  .xtwo{grid-template-columns:1fr}
  .xmiss{margin:12px 16px 0}
  .xfoot{display:none}
  .xmbar{display:flex;flex-direction:column;gap:8px;background:var(--surface);border-top:1px solid var(--edge);padding:12px 16px 14px;box-shadow:0 -6px 16px #0d25420f;margin-bottom:-24px}
  .xmbar small{font-size:12px;color:var(--muted);text-align:center}
}

/* ---------- FV-12: Báo cáo định kỳ giám sát PL IVa + Cài đặt dự án (ảnh duyệt FV-12-1…5 + bản -m, 17/10/2026) ----------
   Mọi lớp mới nằm trong khung .bc12 (trừ tờ giấy dùng chung giay.js) để không trùng lớp sẵn có. Màu theo biến (nền sáng / tối). */
:root{--xp-bg:#e9eef7;--xp-ink:#56687f;--bfill:#fffbef;--bfill-edge:#e9c46a;--bempty:#fffdf5;--bempty-edge:#e2c477;--bok-s:#e8f5ee;--bok-edge:#bfe6d4}
@media (prefers-color-scheme:dark){:root{--xp-bg:#1c2a40;--xp-ink:#9db0c8;--bfill:#2a220f;--bfill-edge:#6b5420;--bempty:#1f1a10;--bempty-edge:#5a4a1c;--bok-s:#0f2a1f;--bok-edge:#245a40}}
/* tờ giấy: nguồn «Cài đặt dự án», «Kính gửi», ô ký bên phải, bảng phụ lục chữ 11 */
.xk-p{background:#e9eef7;box-shadow:inset 0 -1.5px 0 #56687f;border-radius:2px}
.xlgd i.p{background:#e9eef7;box-shadow:inset 0 -2px 0 #56687f}
.xa4 p.xkg{font-size:14px;line-height:18.2px;text-align:center;margin:4px 0 10px}
.xsg.phai{grid-template-columns:50%;justify-content:end}
table.xnl.s11{font-size:11px}
.xt.n{background:var(--surface);color:var(--danger);border:1px dashed var(--xg-edge);padding:0 6px}
.xt.ok{background:color-mix(in srgb,var(--ok) 11%,transparent);color:var(--ok)}
/* khung trang: cùng khoảng cách với main.body */
.bc12{display:flex;flex-direction:column;gap:18px;min-width:0;width:100%}
/* thẻ «sắp có» trên hàng thẻ loại báo cáo */
.bc12 .rtabs a.dim{color:var(--faint);cursor:default}
.bc12 .rtabs .lawt{font-weight:500;font-size:13px;color:var(--faint)}
.bc12 .rtabs .soon{margin-left:2px}
/* FV-12-1 danh sách */
.bc12 .nextc{display:flex;gap:16px;align-items:center;background:var(--surface);border:1px solid var(--edge);border-radius:12px;padding:14px 18px}
.bc12 .nextc .ico{width:40px;height:40px;border-radius:10px;background:var(--sel);color:var(--blue);display:grid;place-items:center;flex:none}
.bc12 .nextc b{font-size:15px;font-weight:650;display:block}.bc12 .nextc small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.bc12 .nextc .btn{margin-left:auto}
table.bc{table-layout:fixed}
table.bc col.c-no{width:170px}table.bc col.c-ky{width:250px}table.bc col.c-st{width:300px}table.bc col.c-who{width:210px}table.bc col.c-up{width:150px}table.bc col.c-act{width:96px}
table.bc td{padding-top:12px;padding-bottom:12px;vertical-align:middle}
table.bc tbody tr{cursor:pointer}table.bc tbody tr:hover td{background:var(--surface-2)}
table.bc .no{font:600 13.5px var(--mono);color:var(--ink)}table.bc .no.none{font:italic 500 13px "Be Vietnam Pro",sans-serif;color:var(--faint)}
table.bc .ky b{display:block;font-weight:600;font-size:14px}table.bc .ky small{display:block;color:var(--muted);font-size:12.5px}
table.bc .sts{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
table.bc .sts small{font-size:12.5px;color:var(--muted)}table.bc .sts small.w{color:var(--warn);font-weight:600}
table.bc .pp{white-space:normal}table.bc .pp b{display:block;font-weight:500;line-height:1.25}table.bc .pp small{display:block;color:var(--muted);font-size:12px}
.mk.draft{color:var(--warn)}.mk.draft i{background:var(--warnbg);border:1.5px dashed var(--trap)}
.mk.lock{color:var(--ok)}.mk.lock .ic{margin-right:-2px}
.bc12 .seeall{display:flex;gap:9px;align-items:center;padding:12px 20px;font-size:13px;color:var(--muted);border-top:1px solid var(--hair);background:var(--surface-2)}
.bc12 .seeall .ic{color:var(--faint)}.bc12 .seeall .r{margin-left:auto}
.bc12 .mlist3{display:none}
/* FV-12-2 chọn kỳ + gom */
.bc12 .steps{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted)}
.bc12 .steps .s{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}
.bc12 .steps .s em{font-style:normal;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;background:var(--hair);color:var(--muted)}
.bc12 .steps .s.done em{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}
.bc12 .steps .s.on{color:var(--ink);font-weight:650}.bc12 .steps .s.on em{background:var(--blue);color:#fff}
.bc12 .steps .ln{width:46px;height:1.5px;background:var(--edge)}
.bc12 .g2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start}
.bc12 .cb{padding:16px 20px 18px;display:flex;flex-direction:column;gap:14px}
.bc12 .two2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.bc12 .fld{display:flex;flex-direction:column;gap:5px;min-width:0;scroll-margin-top:80px}
.bc12 .fld>label,.bc12 .fld>.lb{font-size:13px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.bc12 .fld .v{border:1px solid var(--edge);border-radius:9px;padding:0 11px;font-size:14px;background:var(--surface);min-height:40px;display:flex;align-items:center;gap:8px;line-height:1.4;position:relative;color:var(--ink)}
.bc12 .fld .v:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 15%,transparent)}
.bc12 .fld .v>.ic{color:var(--faint);margin-left:auto;flex:none}
.bc12 .fld .v input,.bc12 .fld .v select,.bc12 .fld .v textarea{all:unset;flex:1;min-width:0;font-size:14px;line-height:1.4;padding:9px 0;color:var(--ink)}
.bc12 .fld .v textarea{white-space:pre-wrap;min-height:64px;resize:vertical;field-sizing:content;max-height:240px}
.bc12 .fld .v input::placeholder,.bc12 .fld .v textarea::placeholder{color:var(--faint)}
.bc12 .fld .v input[type=date]{cursor:pointer}
.bc12 .fld .v input[type=date]::-webkit-calendar-picker-indicator{opacity:0;position:absolute;inset:0;width:auto;height:auto;cursor:pointer}
.bc12 .fld .v.e{border-color:var(--bfill-edge);background:var(--xe-fill)}
.bc12 .fld .v.ro{background:var(--surface-2);color:var(--ink);cursor:pointer}
.bc12 .fld .v.ro.dis{cursor:default}
.bc12 .fld .v.ok2{border-color:var(--bok-edge)}
.bc12 .fld .v.emp{border-style:dashed}
.bc12 .fld .v.dis{background:var(--surface-2)}
.bc12 .fld .v .ov{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;font-size:16px;padding:0}
.bc12 .fld>small{font-size:12px;color:var(--muted);line-height:1.4}
.bc12 .fld>small a,.bc12 .fld>small button.lk{font-weight:600}
.bc12 button.lk{all:unset;color:var(--blue);cursor:pointer;font-weight:600}
.bc12 button.lk:focus-visible{outline:2px solid var(--blue)}
.bc12 .t{font-size:11px;font-weight:700;padding:1px 7px;border-radius:6px;white-space:nowrap;letter-spacing:0}
.bc12 .t.f{background:var(--xf-bg);color:var(--xf-ink)}.bc12 .t.e{background:var(--xe-bg);color:var(--xe-ink)}.bc12 .t.p{background:var(--hair);color:var(--muted)}
.bc12 .t.n{background:var(--surface);color:var(--danger);border:1px dashed var(--xg-edge);padding:0 6px}
.bc12 .okl{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--ok);line-height:1.45}.bc12 .okl .ic{margin-top:1px;flex:none}
.bc12 .wl{display:flex;gap:9px;align-items:flex-start;background:var(--warnbg);color:var(--ink);border-radius:9px;padding:10px 12px;font-size:13px;line-height:1.5}
.bc12 .wl .ic{color:var(--warn);margin-top:2px;flex:none}.bc12 .wl b{font-weight:650}
.bc12 .wl a,.bc12 .wl button.lk{font-weight:600;white-space:nowrap}
.bc12 .wls{display:flex;flex-direction:column;gap:8px}
.bc12 .sg-full{display:flex}.bc12 .sg-full button{flex:1}
.bc12 .prog{display:flex;flex-direction:column;gap:8px}
.bc12 .prog .pgl{display:flex;align-items:baseline;gap:10px;font-size:15px;flex-wrap:wrap}.bc12 .prog .pgl b{font-weight:650}.bc12 .prog .pgl small{margin-left:auto;color:var(--muted);font-size:13px}
.bc12 .pbar{height:10px;border-radius:6px;background:var(--hair);overflow:hidden}.bc12 .pbar i{display:block;height:100%;width:0;background:var(--blue);border-radius:6px;transition:width .4s}
.bc12 .pbar.ok i{background:var(--ok)}
.bc12 .prog .ps{font-size:13px;color:var(--muted);line-height:1.5}
table.gom{width:100%;table-layout:fixed;border-collapse:collapse;font-size:13.5px}
table.gom th{font-size:11.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);text-align:left;padding:8px 10px;background:var(--surface-2);border-bottom:1px solid var(--edge)}
table.gom td{padding:8px 10px;border-bottom:1px solid var(--hair)}
table.gom col.c2,table.gom col.c3{width:84px}table.gom col.c4{width:96px}table.gom col.c5{width:104px}
table.gom .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table.gom .mono{font-size:12px;color:var(--muted);margin-right:6px}
table.gom td.st2{white-space:nowrap;font-size:12.5px}
table.gom .rd2{color:var(--ok);display:inline-flex;gap:5px;align-items:center;font-weight:600}
table.gom .rn2{color:var(--blue);display:inline-flex;gap:5px;align-items:center;font-weight:600}
table.gom .wt2{color:var(--faint)}
table.gom tr.no td{color:var(--faint)}
table.gom tr.sum td{font-weight:700;background:var(--surface-2);border-bottom:0}
table.gom .un{color:var(--warn);font-weight:600}
.bc12 .gmw{border:1px solid var(--edge);border-radius:10px;overflow:hidden}
.bc12 .cfoot{display:flex;gap:10px;align-items:center;padding:14px 20px;border-top:1px solid var(--edge);background:var(--surface-2);flex-wrap:wrap}
.bc12 .cfoot small{color:var(--muted);font-size:12.5px;flex:1 1 220px}
.minip{position:fixed;left:24px;bottom:24px;display:flex;align-items:center;gap:10px;background:var(--navy);color:#fff;border:0;border-radius:10px;padding:9px 14px;font-size:13px;box-shadow:0 10px 30px #0d254240;z-index:40;cursor:pointer;font-family:inherit}
.minip .mb2{width:90px;height:6px;border-radius:4px;background:#ffffff2e;overflow:hidden}.minip .mb2 i{display:block;height:100%;width:0;background:var(--sky)}
/* FV-12-3 soạn: cột phải */
.xw.bc3{grid-template-columns:minmax(0,1fr) 470px}
.bc12 .it{border:1px solid var(--edge);border-radius:10px;overflow:hidden;background:var(--surface);scroll-margin-top:80px}
.bc12 .ith{display:flex;align-items:flex-start;gap:9px;padding:10px 12px}
.bc12 .ith .no2{flex:none;min-width:26px;height:22px;border-radius:6px;background:var(--hair);color:var(--muted);font-size:12px;font-weight:700;display:grid;place-items:center;padding:0 5px;margin-top:1px}
.bc12 .ith .tt2{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.bc12 .ith .tt2 b{font-size:13.5px;font-weight:650;line-height:1.35}
.bc12 .ith .tags{display:flex;gap:5px;flex-wrap:wrap}
.bc12 .ith .pen2{all:unset;color:var(--faint);flex:none;margin-top:2px;cursor:pointer;display:grid;place-items:center;border-radius:6px}
.bc12 .ith .pen2:hover{color:var(--blue)}.bc12 .ith .pen2:focus-visible{outline:2px solid var(--blue)}
.bc12 .it.miss2{border-color:var(--bfill-edge);box-shadow:inset 3px 0 var(--trap)}
.bc12 .it.miss2 .ith .no2{background:var(--warnbg);color:var(--warn)}
.bc12 .ibd{padding:0 12px 12px 47px;display:flex;flex-direction:column;gap:8px}
.bc12 .stat{display:flex;flex-direction:column;gap:5px;font-size:13.5px;line-height:1.45;color:var(--ink)}
.bc12 .nb{all:unset;cursor:pointer;font-weight:700;color:var(--blue);text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;font-variant-numeric:tabular-nums}
.bc12 .nb.on{background:var(--sel);border-radius:5px;padding:0 4px;text-decoration-style:solid}
.bc12 .nb:focus-visible{outline:2px solid var(--blue);border-radius:4px}
.bc12 .nb.zero{color:var(--muted);text-decoration:none;cursor:default}
.bc12 textarea.ta{display:block;width:100%;border:1px solid var(--edge);border-radius:9px;background:var(--surface);min-height:62px;padding:8px 11px;font:inherit;font-size:13.5px;line-height:1.5;color:var(--ink);resize:vertical;field-sizing:content;max-height:360px}
.bc12 textarea.ta::placeholder{color:var(--faint)}
.bc12 textarea.ta:placeholder-shown{border-style:dashed;border-color:var(--bempty-edge);background:var(--bempty)}
.bc12 textarea.ta:not(:placeholder-shown){background:var(--bfill);border-color:var(--bfill-edge)}
.bc12 textarea.ta:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 15%,transparent)}
.bc12 textarea.ta:disabled{opacity:1;cursor:default}
.bc12 .by{display:block;font-size:11.5px;color:var(--muted);margin-top:-4px}
.bc12 .nag{display:flex;gap:7px;align-items:flex-start;font-size:12.5px;color:var(--warn);line-height:1.45}.bc12 .nag .ic{flex:none;margin-top:1px}
.bc12 .ref{border:1px solid var(--hair);border-radius:9px;background:var(--surface-2)}
.bc12 .ref .rh{all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;gap:7px;padding:7px 10px;font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer}
.bc12 .ref .rh:focus-visible{outline:2px solid var(--blue);border-radius:9px}
.bc12 .ref .rh .ic{color:var(--faint)}.bc12 .ref .rh small{margin-left:auto;font-weight:500;color:var(--faint);font-size:11.5px;display:inline-flex;gap:4px;align-items:center}
.bc12 .ref ul{list-style:none;margin:0;padding:0 10px 9px;display:flex;flex-direction:column;gap:6px}
.bc12 .ref li{font-size:12.5px;line-height:1.45;color:var(--ink);border-left:2px solid var(--edge);padding-left:9px;white-space:pre-wrap}
.bc12 .ref li .src{display:block;font-size:11.5px;color:var(--muted);white-space:normal}
.bc12 .ref .rf{font-size:11.5px;color:var(--faint);padding:0 10px 9px;display:flex;gap:6px;align-items:center}
.bc12 .pop{border:1px solid var(--sel-edge);border-radius:10px;background:var(--surface);box-shadow:0 14px 34px var(--shadow);overflow:hidden}
.bc12 .pop .ph{display:flex;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--hair);font-size:13px;font-weight:650;background:var(--sel)}
.bc12 .pop .ph .x2{all:unset;margin-left:auto;color:var(--muted);cursor:pointer;display:grid;place-items:center}
.bc12 .pop table{width:100%;border-collapse:collapse;font-size:12.5px;table-layout:fixed}
.bc12 .pop td{padding:6px 8px;border-bottom:1px solid var(--hair);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bc12 .pop td.w2{white-space:normal}
.bc12 .pop td .mono{font-size:12px;color:var(--muted)}
.bc12 .pop td.okc{color:var(--ok);font-weight:600}.bc12 .pop td.bad{color:var(--danger);font-weight:600}.bc12 .pop td.wt{color:var(--warn);font-weight:600}
.bc12 .pop td a{color:var(--faint);display:grid;place-items:center}.bc12 .pop td a:hover{color:var(--blue)}
.bc12 .pop .pf2{display:flex;gap:8px;align-items:center;padding:8px 12px;font-size:12px;color:var(--muted);background:var(--surface-2)}
.bc12 .pop .pf2 button{margin-left:auto;display:inline-flex;gap:4px;align-items:center;white-space:nowrap}
.bc12 .pop .pe{padding:10px 12px;font-size:12.5px;color:var(--muted)}
.bc12 .cfm{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.45;border:1px dashed var(--edge);border-radius:9px;padding:8px 10px;background:var(--surface);cursor:pointer}
.bc12 .cfm input{width:17px;height:17px;margin:1px 0 0;accent-color:var(--blue);flex:none}
.bc12 .cfm small{color:var(--muted)}
.bc12 .mtab{width:100%;border-collapse:separate;border-spacing:0;font-size:12.5px;border:1px solid var(--edge);border-radius:8px;overflow:hidden;table-layout:fixed}
.bc12 .mtab th{font-size:11px;font-weight:700;color:var(--muted);text-align:left;padding:5px 8px;background:var(--surface-2);border-bottom:1px solid var(--edge);text-transform:uppercase;letter-spacing:.03em}
.bc12 .mtab td{padding:2px 4px;border-bottom:1px solid var(--hair)}.bc12 .mtab .n,.bc12 .mtab .n input{text-align:right;font-variant-numeric:tabular-nums}
.bc12 .mtab tr:last-child td{border-bottom:0}
.bc12 .mtab input{all:unset;box-sizing:border-box;width:100%;padding:4px 4px;border-radius:5px;font-size:12.5px;color:var(--ink)}
.bc12 .mtab input:focus{background:var(--sel)}
.bc12 .mtab .del{all:unset;color:var(--faint);cursor:pointer;display:grid;place-items:center;width:22px;height:22px;border-radius:5px}
.bc12 .mtab .del:hover{color:var(--danger)}
.bc12 .addrow{all:unset;font-size:12.5px;font-weight:600;color:var(--blue);display:inline-flex;gap:5px;align-items:center;cursor:pointer;align-self:flex-start}
.bc12 .addrow:focus-visible{outline:2px solid var(--blue);border-radius:4px}
.bc12 .sml{font-size:12px;color:var(--muted)}
.bc12 .pls{display:flex;flex-direction:column;gap:7px}
.bc12 .pls label{display:flex;gap:9px;align-items:center;font-size:13px;font-weight:500;cursor:pointer}
.bc12 .pls label input{width:17px;height:17px;margin:0;accent-color:var(--blue)}
.bc12 .pls label small{color:var(--muted);font-weight:400;margin-left:auto;font-size:12px}
.bc12 .pls label.off{color:var(--faint);cursor:default}
.bc12 .xfoot .warn2{display:flex;gap:8px;align-items:flex-start;background:var(--warnbg);color:var(--ink);border-radius:9px;padding:9px 11px;font-size:12.5px;line-height:1.5}
.bc12 .xfoot .warn2 .ic{color:var(--warn);flex:none;margin-top:2px}
.btn.lockb{opacity:.55}
.savep{display:inline-flex;gap:6px;align-items:center;font-size:12.5px;color:#a9bad0;white-space:nowrap;align-self:center}.savep .ic{color:#5fd39a}
.savep.w .ic{color:#ffcf70}
/* FV-12-4 đã chốt */
.bc12 .lockc{display:flex;gap:12px;align-items:flex-start;padding:14px 20px;background:var(--bok-s);border-bottom:1px solid var(--bok-edge)}
.bc12 .lockc .ic{color:var(--ok);flex:none;margin-top:2px}
.bc12 .lockc b{display:block;font-size:14.5px;font-weight:650;color:var(--ok)}.bc12 .lockc small{display:block;font-size:12.5px;color:var(--muted);line-height:1.5;margin-top:2px}
.bc12 .kv3{display:grid;grid-template-columns:120px minmax(0,1fr);gap:9px 12px;font-size:13.5px;margin:0}
.bc12 .kv3 dt{color:var(--muted)}.bc12 .kv3 dd{margin:0;min-width:0}.bc12 .kv3 dd small{display:block;color:var(--faint);font-size:12px}
.bc12 .bhist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.bc12 .bhist li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:2px 10px;padding:9px 0;border-top:1px solid var(--hair);font-size:13px}
.bc12 .bhist li:first-child{border-top:0}
.bc12 .bhist .hi{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;grid-row:span 2;background:var(--hair);color:var(--muted)}
.bc12 .bhist .hi.ok{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}.bc12 .bhist .hi.w{background:var(--warnbg);color:var(--warn)}
.bc12 .bhist b{font-weight:600}.bc12 .bhist small{color:var(--muted);font-size:12px}
.bc12 .chgd{display:flex;gap:9px;align-items:flex-start;background:var(--warnbg);color:var(--ink);border-radius:9px;padding:10px 12px;font-size:12.5px;line-height:1.5}
.bc12 .chgd .ic{color:var(--warn);flex:none;margin-top:2px}
dialog.dlg2{border:1px solid var(--edge);border-radius:12px;background:var(--surface);color:var(--ink);box-shadow:0 20px 50px var(--shadow);width:460px;max-width:calc(100vw - 32px);padding:0;overflow:hidden}
dialog.dlg2::backdrop{background:#0d254266}
dialog.dlg2 .ch h2{font-size:15.5px}
dialog.dlg2 .db{padding:14px 18px;display:flex;flex-direction:column;gap:10px;font-size:13.5px;line-height:1.5}
dialog.dlg2 .db ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:3px}
dialog.dlg2 .df{display:flex;gap:10px;justify-content:flex-end;padding:12px 18px;border-top:1px solid var(--hair);background:var(--surface-2)}
dialog.dlg2 textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;line-height:1.45;min-height:70px;resize:vertical}
dialog.dlg2 label{font-size:13px;font-weight:600;display:flex;flex-direction:column;gap:6px}
/* FV-12-5 cài đặt */
.bc12 .st5{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start}
.bc12 .g5{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}
.bc12 .g5 .full{grid-column:1/-1}
.bc12 .use{display:inline-flex;gap:4px;margin-left:auto}
.bc12 .use span{font-size:10.5px;font-weight:700;color:var(--muted);background:var(--hair);border-radius:5px;padding:0 6px;line-height:17px}
.bc12 .newp{font-size:11px;font-weight:700;color:#fff;background:var(--blue);border-radius:6px;padding:1px 7px;letter-spacing:.02em}
.bc12 .ctl{display:flex;flex-direction:column;border:1px solid var(--edge);border-radius:10px;overflow:hidden}
.bc12 .ctl .cr{display:grid;grid-template-columns:minmax(0,1fr) 140px 34px;gap:8px;align-items:center;padding:8px 10px;font-size:13.5px}
.bc12 .ctl .cr+.cr{border-top:1px solid var(--hair)}
.bc12 .ctl .cr input{all:unset;box-sizing:border-box;width:100%;font-size:13.5px;color:var(--ink);padding:2px 4px;border-radius:5px}
.bc12 .ctl .cr input.gc{font-size:12px;color:var(--muted)}
.bc12 .ctl .cr input:focus{background:var(--sel)}
.bc12 .ctl .cr input::placeholder{color:var(--faint)}
.bc12 .ctl .cr small{display:block;font-size:12px;color:var(--muted);padding:0 4px}
.bc12 .ctl .cr .rl{position:relative;font-size:12.5px;color:var(--ink);border:1px solid var(--edge);border-radius:8px;height:32px;display:flex;align-items:center;gap:6px;padding:0 9px;justify-content:space-between}
.bc12 .ctl .cr .rl select{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer;font-size:16px}
.bc12 .ctl .cr .iconbtn{width:30px;height:30px}
.bc12 .ctl .cadd{padding:8px 10px;border-top:1px solid var(--hair);background:var(--surface-2)}
.bc12 .col5{display:flex;flex-direction:column;gap:18px;min-width:0}
.bc12 .chk5{list-style:none;margin:0;padding:6px 0}
.bc12 .chk5 li{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 20px;font-size:13px}
.bc12 .chk5 li .ic{color:var(--ok)}.bc12 .chk5 li.w .ic{color:var(--warn)}
.bc12 .chk5 li em{font-style:normal;font-size:11.5px;color:var(--muted)}
.bc12 .coll{all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;gap:12px;padding:14px 20px;cursor:pointer}
.bc12 .coll:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}
.bc12 .coll b{font-size:15px;font-weight:650}.bc12 .coll small{color:var(--muted);font-size:13px}.bc12 .coll>.ic:last-child{margin-left:auto;color:var(--muted)}
.bc12 .coll[aria-expanded="true"]{border-bottom:1px solid var(--hair)}
@media (max-width:980px){.xw.bc3{grid-template-columns:minmax(0,1fr) 380px}}
@media (max-width:760px){
  .bc12{gap:12px}
  main.xmain .bc12{gap:0}
  .bc12 .rtabs{overflow:hidden}.bc12 .rtabs a{padding:0 9px;font-size:14px}.bc12 .rtabs .soon,.bc12 .rtabs .lawt{display:none}
  table.bc{display:none}.bc12 .mlist3{display:block}
  .bc12 .m3{padding:12px 16px;border-bottom:1px solid var(--hair);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;color:var(--ink);text-decoration:none!important}
  .bc12 .m3:last-child{border-bottom:0}
  .bc12 .m3 .l1{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:8px}
  .bc12 .m3 .l1 .mono{font-size:13px;font-weight:600}.bc12 .m3 .l1 .none{font-style:italic;color:var(--faint);font-size:13px}
  .bc12 .m3 b{font-size:14.5px;font-weight:650}.bc12 .m3 small{font-size:12.5px;color:var(--muted)}.bc12 .m3 small.w{color:var(--warn);font-weight:600}
  .bc12 .m3 .chev{grid-row:2/4;grid-column:2;align-self:center;color:var(--faint)}
  .bc12 .nextc{flex-wrap:wrap;padding:12px 14px;margin:0 16px}.bc12 .nextc .ico{display:none}.bc12 .nextc .btn{margin-left:0;width:100%}
  .bc12>.card{margin:0 16px}
  .bc12 .seeall{flex-wrap:wrap}.bc12 .seeall .r{margin-left:0}
  .bc12 .steps{gap:6px;font-size:12.5px;padding:0 16px}.bc12 .steps .ln{width:14px}.bc12 .steps .s em{width:22px;height:22px;font-size:12px}
  .bc12 .g2{grid-template-columns:minmax(0,1fr);gap:14px}
  .bc12 .g2{padding:0 16px}.bc12 .g2 .gomc{order:-1}
  .bc12 .cb{padding:14px 16px}
  .bc12 .cfoot{padding:12px 16px}
  table.gom td,table.gom th{padding:7px 8px}
  table.gom col.c3{width:0!important}table.gom th:nth-child(3),table.gom td:nth-child(3){padding:0!important;font-size:0;overflow:hidden}
  table.gom col.c2{width:50px!important}table.gom col.c4{width:58px!important}table.gom col.c5{width:96px!important}table.gom th{font-size:10.5px;white-space:normal;line-height:1.3}
  .minip{left:16px;right:16px;bottom:16px}
  .xw.bc3{grid-template-columns:minmax(0,1fr)}
  .xw.bc3.x-pv .xsv{display:none}.xw.bc3.x-sw .xdesk{display:none}
  .bc12 .ibd{padding:0 12px 12px 12px}
  .bc12 .two2{grid-template-columns:1fr}
  .bc12 .st5{grid-template-columns:minmax(0,1fr)}.bc12 .g5{grid-template-columns:minmax(0,1fr)}
  .bc12 .st5{padding:0 16px}
  .bc12 .ctl .cr{grid-template-columns:minmax(0,1fr) 34px}.bc12 .ctl .cr .rl{grid-column:1;grid-row:2}
  .bc12 .g5 .seg-ctl{display:flex;width:100%}.bc12 .g5 .seg-ctl button{flex:1;padding:0 6px;font-size:13.5px;gap:5px}.bc12 .g5 .seg-ctl button .ic{display:none}
  .bc12 .xmbar .row{display:flex;gap:8px}.bc12 .xmbar .row .btn{flex:1}
}
.m-only2{display:none}
@media (max-width:760px){.m-only2{display:inline}}
.bc12 .fld .v input:disabled,.bc12 .fld .v textarea:disabled{color:var(--ink);-webkit-text-fill-color:var(--ink);opacity:1}
