/* Layout: brand bar trên cùng (nền trắng, logo), thanh điều hướng màu nâu, nội dung dạng bảng điều phối; màu nhấn đỏ Đồng Tiến dùng tiết chế cho hành động chính và cảnh báo. */
:root{
  --bg:#ffffff; --bg-2:#f7f3f2; --panel:#ffffff; --line:#e6dcda; --line-2:#d3c4c1;
  --fg:#2b1c1a; --fg-2:#5E2D2A; --muted:#8a6f6b;
  --brand:#ED2624; --brand-ink:#ffffff; --brand-soft:#fdeceb; --brown:#5E2D2A; --brown-ink:#ffffff;
  --ok:#2e7d4f; --ok-soft:#e4f3ea; --warn:#b26a00; --warn-soft:#fff2db; --crit:#c62828; --crit-soft:#fde7e7; --info:#2a5fa8; --info-soft:#e6eef9; --neutral-soft:#efe9e8;
  --shadow:0 1px 2px rgba(60,30,28,.08),0 4px 14px rgba(60,30,28,.06);
  --f-display:"Roboto Condensed","Arial Narrow",Arial,sans-serif;
  --f-body:"Segoe UI",Roboto,Arial,sans-serif;
  --radius:6px;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#171212; --bg-2:#1f1818; --panel:#241c1b; --line:#3a2d2b; --line-2:#4d3c39; --fg:#f1e9e7; --fg-2:#e3c9c4; --muted:#a88f8a;
  --brand:#f04a48; --brand-soft:#3d1f1e; --brown:#3b2321; --ok:#6cc48f; --ok-soft:#1d3327; --warn:#e6a94a; --warn-soft:#3b2d16; --crit:#f07070; --crit-soft:#3d1c1c; --info:#7fa8e8; --info-soft:#1c2a3f; --neutral-soft:#33292a;
  --shadow:0 1px 2px rgba(0,0,0,.4); color-scheme:dark } }
:root[data-theme="dark"]{
  --bg:#171212; --bg-2:#1f1818; --panel:#241c1b; --line:#3a2d2b; --line-2:#4d3c39; --fg:#f1e9e7; --fg-2:#e3c9c4; --muted:#a88f8a;
  --brand:#f04a48; --brand-soft:#3d1f1e; --brown:#3b2321; --ok:#6cc48f; --ok-soft:#1d3327; --warn:#e6a94a; --warn-soft:#3b2d16; --crit:#f07070; --crit-soft:#3d1c1c; --info:#7fa8e8; --info-soft:#1c2a3f; --neutral-soft:#33292a;
  --shadow:0 1px 2px rgba(0,0,0,.4); color-scheme:dark }
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.5 var(--f-body);display:flex;flex-direction:column;min-height:100%}
h1,h2,h3,h4{font-family:var(--f-display);margin:0;text-wrap:balance;color:var(--fg-2);letter-spacing:.01em}
h1{font-size:22px;font-weight:700}
h2{font-size:18px;font-weight:700}
h3{font-size:15px;font-weight:700}
a{color:var(--info)}
button{font:inherit;cursor:pointer}
input,select,textarea{font:inherit;color:var(--fg);background:var(--panel);border:1px solid var(--line-2);border-radius:var(--radius);padding:6px 8px}
input:focus,select:focus,textarea:focus,button:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.topbar{background:#fff;border-bottom:3px solid var(--brand);padding-block:8px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.topbar img{height:44px;width:auto;display:block}
.topbar .app{font-family:var(--f-display);font-weight:700;font-size:18px;color:#5E2D2A;border-left:1px solid #d3c4c1;padding-left:16px;line-height:1.1}
.topbar .app small{display:block;font-family:var(--f-body);font-weight:400;font-size:11px;color:#8a6f6b;letter-spacing:.06em;text-transform:uppercase}
.topbar .spacer{flex:1}
.topbar .who{display:flex;align-items:center;gap:8px;font-size:13px;color:#5E2D2A}
.topbar select{background:#fff;color:#2b1c1a;border-color:#d3c4c1}
.proj{font-size:12px;color:#5E2D2A;background:#f7f3f2;border:1px solid #e6dcda;border-radius:999px;padding:3px 10px}
.nav{background:var(--brown);padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}
.nav a{color:var(--brown-ink);text-decoration:none;padding:10px 12px;font-family:var(--f-display);font-size:14px;letter-spacing:.02em;white-space:nowrap;border-bottom:3px solid transparent;opacity:.85}
.nav a.on{border-bottom-color:var(--brand);opacity:1;background:rgba(255,255,255,.08)}
.nav a .k{font-size:11px;opacity:.7;margin-right:4px}
main{flex:1;padding-block:18px 40px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));max-width:1280px;width:100%;margin:0 auto}
.view{display:none}.view.on{display:block}
.head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.head p{margin:4px 0 0;color:var(--muted);max-width:70ch}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.btn{border:1px solid var(--line-2);background:var(--panel);color:var(--fg);border-radius:var(--radius);padding:7px 12px;font-weight:500}
.btn:hover{background:var(--bg-2)}
.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.btn.primary:hover{filter:brightness(.94)}
.btn.sm{padding:4px 9px;font-size:12px}
.btn.ghost{border-color:transparent;background:transparent;color:var(--info)}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px}
.tile .n{font-family:var(--f-display);font-size:26px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.tile .l{font-size:12px;color:var(--muted);margin-top:4px}
.tile.crit .n{color:var(--crit)}.tile.warn .n{color:var(--warn)}.tile.ok .n{color:var(--ok)}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card .cb{padding:12px 14px}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--bg-2);border-radius:var(--radius) var(--radius) 0 0}
.toolbar .grow{flex:1}
.tabs{display:flex;gap:0;border-bottom:1px solid var(--line);padding:0 14px}
.tabs button{background:none;border:0;border-bottom:3px solid transparent;padding:10px 12px;font-family:var(--f-display);font-size:15px;color:var(--muted)}
.tabs button.on{color:var(--fg-2);border-bottom-color:var(--brand)}
.tw{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:13px}
th{font-family:var(--f-display);font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--panel);position:sticky;top:0}
td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
tr.row:hover td{background:var(--bg-2);cursor:pointer}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.code{font-family:var(--f-display);font-weight:700;color:var(--fg-2);white-space:nowrap}
.sub{color:var(--muted);font-size:12px}
.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:500;white-space:nowrap;border:1px solid transparent}
.s-chuagiao{background:var(--neutral-soft);color:var(--muted)}
.s-dagiao{background:var(--info-soft);color:var(--info)}
.s-dangviet{background:var(--info-soft);color:var(--info)}
.s-danop{background:var(--warn-soft);color:var(--warn)}
.s-dangtonghop{background:var(--warn-soft);color:var(--warn)}
.s-choraso{background:var(--warn-soft);color:var(--warn)}
.s-cansua{background:var(--crit-soft);color:var(--crit)}
.s-daduyet{background:var(--ok-soft);color:var(--ok)}
.late{color:var(--crit);font-weight:500}
.soon{color:var(--warn);font-weight:500}
.tag{display:inline-block;font-size:11px;padding:1px 6px;border:1px solid var(--line-2);border-radius:4px;color:var(--muted);margin-right:3px;white-space:nowrap}
.tag.tam{border-color:var(--warn);color:var(--warn)}
.tag.unit{border-style:dashed}
.bar{height:6px;background:var(--neutral-soft);border-radius:3px;overflow:hidden;display:flex;min-width:120px}
.bar i{display:block;height:100%}
.legend{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:2fr 1fr;gap:14px}
@media (max-width:860px){.grid2,.grid3{grid-template-columns:1fr}}
.list{list-style:none;margin:0;padding:0}
.list li{padding:8px 0;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:flex-start}
.list li:last-child{border-bottom:0}
.list .t{font-size:12px;color:var(--muted);white-space:nowrap;min-width:92px;font-variant-numeric:tabular-nums}
.dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:none;margin-top:7px}
.dot.ok{background:var(--ok)}.dot.warn{background:var(--warn)}.dot.crit{background:var(--crit)}.dot.info{background:var(--info)}
.note{background:var(--warn-soft);border-left:3px solid var(--warn);padding:8px 12px;border-radius:0 var(--radius) var(--radius) 0;font-size:13px;margin-bottom:14px}
.note.info{background:var(--info-soft);border-color:var(--info)}
/* drawer */
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(560px,100%);background:var(--panel);border-left:1px solid var(--line);box-shadow:-8px 0 30px rgba(0,0,0,.18);transform:translateX(100%);transition:transform .2s;z-index:50;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);padding-right:env(safe-area-inset-right,0px)}
.drawer.on{transform:none}
.drawer .dh{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:10px}
.drawer .dh .x{margin-left:auto;background:none;border:0;font-size:20px;color:var(--muted)}
.drawer .db{padding:14px 16px;overflow:auto;flex:1}
.kv{display:grid;grid-template-columns:140px 1fr;gap:6px 10px;font-size:13px;margin-bottom:14px}
.kv dt{color:var(--muted)}.kv dd{margin:0}
.overlay{position:fixed;inset:0;background:rgba(40,20,18,.35);z-index:40;display:none}
.overlay.on{display:block}
.steps{display:flex;gap:4px;flex-wrap:wrap;margin:8px 0 14px}
.steps span{font-size:11px;padding:3px 8px;border-radius:999px;background:var(--neutral-soft);color:var(--muted)}
.steps span.done{background:var(--ok-soft);color:var(--ok)}
.steps span.cur{background:var(--brand);color:var(--brand-ink)}
.field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.field label{font-size:12px;color:var(--muted)}
.hrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
@media (prefers-reduced-motion:reduce){.drawer{transition:none}}
.sec{margin-top:18px}
.sec h3{margin-bottom:8px}
.gt{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.report{font-family:"Times New Roman",Times,serif;font-size:13px;background:#fff;color:#111;padding:28px 32px;border:1px solid var(--line);max-width:860px}
.report h4{font-family:inherit;color:#111;text-align:center;font-size:14px;margin:0 0 4px;text-transform:uppercase}
.report table{font-family:inherit;font-size:12.5px}
.report th,.report td{border:1px solid #333;padding:4px 6px;color:#111;background:#fff;position:static;text-transform:none;font-family:inherit;letter-spacing:0}
.report th{text-align:center;font-weight:700}
.report .agency td{font-weight:700;background:#f3f3f3}
.conf{display:inline-block;width:10px;height:10px;border-radius:2px;vertical-align:-1px;margin-right:4px}
.c-hi{background:var(--ok)}.c-md{background:var(--warn)}.c-lo{background:var(--crit)}
.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--bg-2);border:1px solid var(--line);font-size:12px}
.hint{font-size:12px;color:var(--muted)}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--brown);color:#fff;padding:9px 16px;border-radius:999px;font-size:13px;box-shadow:var(--shadow);z-index:60;opacity:0;transition:opacity .2s;pointer-events:none}
.toast.on{opacity:1}
.demo{font-size:11px;color:var(--muted);text-align:center;padding:10px;border-top:1px solid var(--line)}
.cal{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.cal .d{border:1px solid var(--line);border-radius:var(--radius);padding:8px 10px;background:var(--panel)}
.cal .d b{font-family:var(--f-display);display:block;color:var(--fg-2)}
.mail{border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;background:var(--bg-2);font-size:12.5px}
.mail .h{color:var(--muted);margin-bottom:6px}
.mail pre{white-space:pre-wrap;margin:0;font:12.5px/1.5 var(--f-body)}

/* ---- Bổ sung cho sản phẩm (ngoài nguyên mẫu) ---- */
.s-tre{background:var(--crit-soft);color:var(--crit)}
.s-flag{background:var(--brand-soft);color:var(--brand)}
.topbar .who b{font-weight:600}
.topbar .role{font-size:11px;padding:2px 8px;border-radius:999px;background:#f7f3f2;border:1px solid #e6dcda;color:#5E2D2A}
.empty{padding:28px 16px;text-align:center;color:var(--muted)}
.bulk{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 14px;background:var(--info-soft);border-bottom:1px solid var(--line);font-size:13px}
.bulk[hidden]{display:none}
.fg{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.fg .full{grid-column:1/-1}
@media (max-width:640px){.fg{grid-template-columns:1fr}}
.field input,.field select,.field textarea{width:100%}
textarea{resize:vertical}
.modal{position:fixed;inset:4vh 2vw auto 2vw;max-height:92vh;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 20px 60px rgba(0,0,0,.3);z-index:55;display:none;flex-direction:column;max-width:1280px;margin:0 auto}
.modal.on{display:flex}
.modal .dh{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}
.modal .dh .x{margin-left:auto;background:none;border:0;font-size:22px;color:var(--muted)}
.modal .db{padding:12px 16px;overflow:auto;flex:1}
.modal .df{padding:10px 16px;border-top:1px solid var(--line);display:flex;gap:8px;flex-wrap:wrap;align-items:center}
table.edit td{padding:4px 6px}
table.edit input,table.edit select{width:100%;min-width:90px;padding:4px 6px;font-size:12.5px}
tr.r-hi td:first-child{box-shadow:inset 3px 0 var(--ok)}
tr.r-md td:first-child{box-shadow:inset 3px 0 var(--warn)}
tr.r-lo td:first-child{box-shadow:inset 3px 0 var(--crit)}
tr.sel td{background:var(--brand-soft)}
.login{max-width:420px;margin:8vh auto;padding:0 16px}
.login .card{padding:22px}
.login img{height:64px;display:block;margin:0 auto 10px}
.login h1{text-align:center;margin-bottom:4px}
.login p{text-align:center;color:var(--muted);margin:0 0 16px}
.err{color:var(--crit);font-size:13px;min-height:18px}
.mail{margin-bottom:8px}
.mail summary{cursor:pointer;list-style:none}
.mail summary::-webkit-details-marker{display:none}
.mono{font-family:Consolas,"Courier New",monospace;font-size:12px}
.rv{border-left:3px solid var(--line-2);padding:6px 10px;margin-bottom:8px;background:var(--bg-2);border-radius:0 var(--radius) var(--radius) 0}
.rv.phai_sua{border-color:var(--crit)}.rv.nen_sua{border-color:var(--warn)}.rv.goi_y{border-color:var(--info)}
.rv .rep{margin-top:6px;padding-left:10px;border-left:2px solid var(--ok);font-size:12.5px}
select[multiple]{min-height:120px}
.chk{display:inline-flex;gap:6px;align-items:center;font-size:13px}
.kpi-mini{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted)}
.link{background:none;border:0;color:var(--info);padding:0;text-decoration:underline;cursor:pointer;font:inherit}
@media print{.topbar,.nav,.actions,.toolbar{display:none}}
.grid2>*,.grid3>*{min-width:0}
.drawer:not(.on){box-shadow:none;visibility:hidden}
@media (max-width:640px){.topbar img{height:36px}.topbar .app{font-size:16px}.head .actions{width:100%}.kv{grid-template-columns:110px 1fr}}

/* ---- Bản rút gọn: cây mục, hộp thư, góp ý ---- */
.s-chuagui{background:var(--neutral-soft);color:var(--muted)}
.s-dagui{background:var(--info-soft);color:var(--info)}
.s-danhan{background:var(--ok-soft);color:var(--ok)}
.s-quahan{background:var(--crit-soft);color:var(--crit)}
.s-khonggiao{background:transparent;color:var(--muted);border-color:var(--line-2)}
.s-cho{background:var(--warn-soft);color:var(--warn)}
.tt{display:flex;align-items:baseline;gap:6px}
.tt .lv{font-size:11px;color:var(--muted);min-width:22px}
tr.c1 td.ti{font-weight:600}
tr.nogiao td{color:var(--muted)}
tr.nogiao td.ti{font-weight:400}
table.tree td{padding:3px 6px;vertical-align:middle}
table.tree input.t{width:100%;border-color:transparent;background:transparent;padding:3px 4px}
table.tree input.t:hover,table.tree input.t:focus{border-color:var(--line-2);background:var(--panel)}
table.tree .ops{white-space:nowrap}
table.tree .ops button{border:1px solid var(--line);background:var(--panel);border-radius:4px;padding:1px 6px;font-size:12px;color:var(--fg-2)}
table.tree .ops button:hover{background:var(--bg-2)}
table.tree tr.dim td{opacity:.55}
.badge{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:var(--brand);color:#fff;font-size:11px;text-align:center;margin-left:4px;font-family:var(--f-body)}
.pre{white-space:pre-wrap;font-size:12.5px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:8px 10px;max-height:260px;overflow:auto}
.clip{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
select.muc{max-width:260px;min-width:160px;font-size:12.5px;padding:3px 4px}
.preset{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.ok-t{color:var(--ok)}.crit-t{color:var(--crit)}
.topbar,.nav,.demo{flex-shrink:0}
.field input[type=checkbox],.field input[type=radio]{width:auto}
.cglist{max-height:200px;overflow:auto;border:1px solid var(--line);border-radius:var(--radius);padding:4px 8px}
.cglist label{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--fg);padding:3px 0;cursor:pointer}
.cglist input{margin-top:3px;flex:none}
/* Hộp thả góp ý */
.drop{border:2px dashed var(--line-2);background:var(--bg-2);padding:14px;margin-bottom:14px;transition:border-color .15s,background .15s}
.drop.over{border-color:var(--brand);background:var(--brand-soft)}
.drop .dz{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:8px 0}
.dfile{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px 12px;margin-top:10px;text-align:left}
.dfhead{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dfhead .grow{flex:1}
.prog{height:6px;background:var(--neutral-soft);border-radius:3px;overflow:hidden;margin-top:6px}
.prog i{display:block;height:100%;background:var(--brand);transition:width .2s}
.fg4{display:grid;grid-template-columns:2fr 1.4fr 1fr 1fr 1fr;gap:8px}
.fg4 .field input{width:100%}
@media (max-width:760px){.fg4{grid-template-columns:1fr 1fr}}
.kpi-mini{display:flex;flex-wrap:wrap;gap:6px}
.kpi-mini span{background:var(--bg-2);border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:12.5px}
[hidden]{display:none!important}

.cgmoi{margin-top:8px;border:1px dashed #ED2624;border-radius:var(--radius);padding:8px 10px;background:#fff7f6}
.cgmoi summary{cursor:pointer;font-weight:600;color:#ED2624}

.canhbao{background:#FFF7E6;border:1px solid #F5C26B;color:#7A4B00;border-radius:6px;padding:6px 10px;margin:0 0 8px;font-size:13px}

/* ---- Bản 2: xem bài, so sánh trước/sau, ngăn chi tiết rộng hơn ---- */
.drawer{width:min(720px,100%)}
.docv{font-family:"Times New Roman",Times,serif;font-size:14px;line-height:1.55;background:#fff;color:#111;border:1px solid var(--line);border-radius:var(--radius);padding:14px 18px;max-height:420px;overflow:auto}
.docv p{margin:0 0 6px;text-align:justify}
.docv h1,.docv h2,.docv h3,.docv h4{font-family:inherit;color:#111;margin:10px 0 6px}
.docv table{border-collapse:collapse;margin:6px 0;font-size:13px;width:auto;max-width:100%}
.docv td,.docv th{border:1px solid #666;padding:3px 6px;color:#111;background:#fff;position:static;text-transform:none;letter-spacing:0;font-family:inherit;font-size:13px}
.docv .sub{color:#666}
p.dx{margin:0 0 6px}
ins{background:#dff3e4;color:#145a2c;text-decoration:none;border-bottom:1px solid #2e7d4f}
del{background:#fde7e7;color:#8f1d1d;text-decoration:line-through}
.legend ins,.legend del{padding:0 3px}
.thu .field textarea{font:13px/1.5 var(--f-body)}
.s-dagiao{background:var(--info-soft);color:var(--info)}
.steps span{cursor:pointer}
.tile .l a{color:inherit}
.link{text-align:left}

/* ô do phần mềm tự điền từ đề cương */
input.tuDien{background:#fff8e1}
.tag.ok{border-color:var(--ok, #2e7d32);color:var(--ok, #2e7d32)}

body.chi-xem #app::before{content:'Tài khoản chỉ xem: anh/chị xem và tải tệp về được, không sửa và không gửi thư.';display:block;background:var(--info-soft);border-left:3px solid var(--info);padding:6px 12px;font-size:13px;margin-bottom:12px;border-radius:0 var(--radius) var(--radius) 0}
.dx-anh{display:block;max-width:100%;max-height:420px;margin:6px 0;border:1px solid var(--line)}
.dx-anh-ten{display:inline-block;font-size:12px;color:var(--muted);border:1px dashed var(--line-2);padding:1px 6px;border-radius:4px}

/* Trợ lý đề án */
.tl-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.tl-khung{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.tl-chinh{flex:999 1 460px;min-width:0;display:flex;flex-direction:column;gap:12px}
.tl-nguon{flex:1 1 280px;min-width:0}
.tl-hoi{align-self:flex-end;max-width:620px;background:var(--brown);color:var(--brown-ink);border-radius:8px;padding:9px 13px}
.tl-so{padding:0 6px;margin:0 2px;vertical-align:baseline}
.tl-dg{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.tl-nguon blockquote{margin:8px 0;padding:8px 10px;background:var(--bg-2);border-radius:var(--radius);font-size:13px}
.tl-luoi{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-bottom:10px}
