.tdf-root{--tdf-ink:#1d2433;--tdf-mute:#667085;--tdf-line:#dfe3ea;--tdf-bg:#fff;--tdf-soft:#f5f7fa;--tdf-accent:#0b5cad;--tdf-accent-ink:#fff;--tdf-warn:#a15c00;--tdf-warn-bg:#fff4e0;--tdf-sel:#e8f1fb;--tdf-diff:#fff8dd;
  box-sizing:border-box;max-width:1100px;margin:0 auto;padding:16px;color:var(--tdf-ink);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.tdf-root *,.tdf-root *::before,.tdf-root *::after{box-sizing:border-box}
@media (prefers-color-scheme:dark){.tdf-root.tdf-dark-auto{--tdf-ink:#e8ecf3;--tdf-mute:#9aa4b5;--tdf-line:#323a4b;--tdf-bg:#161b26;--tdf-soft:#1e2432;--tdf-accent:#5aa2ee;--tdf-accent-ink:#0b1220;--tdf-warn:#f1b24a;--tdf-warn-bg:#3a2d12;--tdf-sel:#1f3350;--tdf-diff:#3a3513}}
.tdf-langbar{display:flex;justify-content:flex-end;margin-bottom:8px}
.tdf-lang{font-weight:600;min-width:180px}
.tdf-root[dir=rtl] .tdf-range{direction:ltr}
.tdf-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.tdf-title{margin:0;font-size:1.4rem;line-height:1.25}
.tdf-head-actions{display:flex;gap:8px;flex-wrap:wrap}
.tdf-banner{background:var(--tdf-warn-bg);color:var(--tdf-warn);border:1px solid currentColor;border-radius:8px;padding:10px 12px;margin-bottom:12px;font-weight:600}
.tdf-input{width:100%;font:inherit;font-size:1.1rem;padding:14px 16px;border:2px solid var(--tdf-line);border-radius:10px;background:var(--tdf-bg);color:var(--tdf-ink)}
.tdf-input:focus,.tdf-select:focus,.tdf-btn:focus-visible,.tdf-pill:focus-visible,.tdf-row:focus-visible{outline:3px solid var(--tdf-accent);outline-offset:2px;border-color:var(--tdf-accent)}
.tdf-hint{color:var(--tdf-mute);font-size:.85rem;margin:6px 2px 12px}
.tdf-filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.tdf-posbar{display:flex;flex-wrap:wrap;gap:6px}
.tdf-pill{font:inherit;font-size:.9rem;padding:8px 12px;border:1px solid var(--tdf-line);border-radius:999px;background:var(--tdf-bg);color:var(--tdf-ink);cursor:pointer;min-height:40px}
.tdf-pill.is-on{background:var(--tdf-accent);color:var(--tdf-accent-ink);border-color:var(--tdf-accent)}
.tdf-select{font:inherit;padding:8px 10px;border:1px solid var(--tdf-line);border-radius:8px;background:var(--tdf-bg);color:var(--tdf-ink);min-height:40px;max-width:100%}
.tdf-check{display:inline-flex;align-items:center;gap:6px;font-size:.9rem;cursor:pointer;min-height:40px}
.tdf-check input{width:18px;height:18px}
.tdf-btn{font:inherit;font-size:.9rem;padding:8px 14px;border:1px solid var(--tdf-accent);border-radius:8px;background:var(--tdf-accent);color:var(--tdf-accent-ink);cursor:pointer;min-height:40px}
.tdf-btn-ghost{background:transparent;color:var(--tdf-accent)}
.tdf-count{font-size:.9rem;color:var(--tdf-mute);margin:8px 0}
.tdf-tablewrap{overflow-x:auto;border:1px solid var(--tdf-line);border-radius:10px}
.tdf-table{width:100%;border-collapse:collapse;font-size:.92rem}
.tdf-table th,.tdf-table td{padding:9px 10px;text-align:start;border-bottom:1px solid var(--tdf-line);vertical-align:top}
.tdf-table thead th{background:var(--tdf-soft);font-weight:600;white-space:nowrap;position:sticky;top:0}
.tdf-row{cursor:pointer}
.tdf-row:hover{background:var(--tdf-soft)}
.tdf-row.is-sel{background:var(--tdf-sel)}
.tdf-c-pat{font-weight:600}
.tdf-warn{color:var(--tdf-warn)}
.tdf-chips{display:inline-flex;gap:4px;flex-wrap:wrap}
.tdf-chip{display:inline-block;font-size:.78rem;padding:2px 8px;border-radius:999px;background:var(--tdf-soft);border:1px solid var(--tdf-line);white-space:nowrap}
.tdf-chip-positions{background:var(--tdf-sel)}
.tdf-muted{color:var(--tdf-mute)}
.tdf-sub{color:var(--tdf-mute);font-size:.85em}
.tdf-empty,.tdf-error{padding:16px;border:1px dashed var(--tdf-line);border-radius:10px;color:var(--tdf-mute)}
.tdf-error{color:var(--tdf-warn);border-color:var(--tdf-warn)}
.tdf-card{border:1px solid var(--tdf-line);border-radius:12px;padding:16px;margin-top:16px;background:var(--tdf-bg)}
.tdf-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.tdf-card h3{margin:0 0 6px;font-size:1.2rem}
.tdf-card h4{margin:18px 0 8px;font-size:1rem}
.tdf-tags{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:6px 0 10px}
.tdf-flag{background:var(--tdf-warn-bg);color:var(--tdf-warn);border-radius:8px;padding:8px 10px;margin:6px 0;font-size:.9rem}
.tdf-flag-info{background:var(--tdf-soft);color:var(--tdf-mute)}
.tdf-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 18px;margin:12px 0}
.tdf-kv dt{font-size:.78rem;color:var(--tdf-mute);text-transform:uppercase;letter-spacing:.03em}
.tdf-kv dd{margin:0;font-weight:600}
.tdf-source,.tdf-notes{font-size:.85rem;color:var(--tdf-mute);margin-top:6px}
.tdf-range{width:100%;accent-color:var(--tdf-accent);margin:8px 0}
.tdf-pressure-val{font-weight:700;font-size:1.05rem}
.tdf-cmpbar{display:flex;gap:10px;align-items:center;margin-top:12px}
.tdf-cmp th{width:22%;background:var(--tdf-soft)}
.tdf-cmp tr.is-diff td{background:var(--tdf-diff)}
.tdf-foot{margin-top:20px;font-size:.8rem;color:var(--tdf-mute)}
@media (max-width:700px){
  .tdf-root{padding:12px}
  .tdf-table:not(.tdf-cmp) thead{display:none}
  .tdf-table:not(.tdf-cmp),.tdf-table:not(.tdf-cmp) tbody,.tdf-table:not(.tdf-cmp) tr,.tdf-table:not(.tdf-cmp) td{display:block;width:100%}
  .tdf-table:not(.tdf-cmp) tr{border-bottom:2px solid var(--tdf-line);padding:8px 4px}
  .tdf-table:not(.tdf-cmp) td{border:0;padding:3px 8px;display:flex;justify-content:space-between;gap:12px}
  .tdf-table:not(.tdf-cmp) td::before{content:attr(data-label);color:var(--tdf-mute);font-size:.8rem;flex:0 0 38%}
  .tdf-table:not(.tdf-cmp) td.tdf-c-cmp::before{content:attr(data-label)}
  .tdf-input{font-size:1rem}
}
@media print{.tdf-head-actions,.tdf-filters,.tdf-input,.tdf-hint,.tdf-btn,.tdf-cmpbar{display:none!important}}
/* so lieu + don vi giu dung thu tu trong giao dien phai-sang-trai */
.tdf-table td,.tdf-kv dd,.tdf-pressure-val,.tdf-source{unicode-bidi:plaintext}
