/* Giao diện riêng của công cụ này. Sửa ở đây không ảnh hưởng công cụ khác. */
.tl-page{--blue:#004aef; --blue-d:#0033b3; --green:#07ef9c; --cyan:#0fd6f7; --yellow:#ffce00;
  --bg:#f4f7fd; --surface:#ffffff; --ink:#212025; --text:#434343; --muted:#616a7a;
  --line:#dbe3f5; --blue-soft:#e3ebff; --green-soft:#dcfbef; --cyan-soft:#e3fafe; --yellow-soft:#fff6d6;
  --red:#dc2f2f; --red-soft:#f6cbcb; --red-ink:#8f1d1d;
  --font-body:'Google Sans VN','Be Vietnam Pro',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
--font-body:Gilroy,'Be Vietnam Pro',system-ui,sans-serif;--font-display:var(--font-body)}
.tl-page .fig{margin-top:20px;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:22px}
.tl-page .fig svg{display:block;width:100%;height:auto;font-family:var(--font-body)}
.tl-page .fig-cap{font-size:13.5px;color:var(--muted);margin-top:14px;line-height:1.5}
.tl-page .fig-cap b{color:var(--ink)}
.tl-page .legend{margin-top:22px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px 26px}
.tl-page .leg{display:grid;grid-template-columns:24px 1fr;gap:12px;align-items:start}
.tl-page .leg .leg-t{display:block;font-size:15px;line-height:1.35}
.tl-page .leg p{font-size:14px;color:var(--muted);margin-top:4px}
.tl-page .pin{width:24px;height:24px;border-radius:50%;background:var(--green);color:var(--ink);font:700 12.5px/24px var(--font-body);text-align:center;display:inline-block;flex:none}
.tl-page .note{margin-top:18px;background:var(--blue-soft);border-radius:14px;padding:14px 18px;font-size:14.5px;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;color:var(--ink)}
.tl-page .note .ic{width:20px;height:20px;margin-top:3px;fill:var(--blue)}
.tl-page .note.warn{background:var(--yellow-soft)}
.tl-page .note.warn .ic{fill:#7a5f00}
.tl-page .note.loi{background:var(--red-soft)}
.tl-page .note.loi .ic{fill:#8f1d1d}
.tl-page .tbl-wrap{overflow-x:auto;margin-top:18px;background:var(--surface);border:1px solid var(--line);border-radius:16px}
@media (max-width:960px){
.tl-page .legend{grid-template-columns:1fr}
}
/* ===== Bố cục hai cột (07/11/2026): khung chung tl-cc trong src/shared/tools.css ===== */
.tl-page .tl-cc>*{min-width:0}
.tl-page .tha{border:2px dashed var(--line);border-radius:14px;background:var(--bg);padding:22px 18px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}
.tl-page .tha:hover,.tl-page .tha:focus-visible,.tl-page .tha.keo{border-color:var(--blue);background:var(--blue-soft);outline:none}
.tl-page .tha p{font-size:13.5px;color:var(--muted);margin:0;line-height:1.45}
.tl-page .tha b{display:block;font-size:15px;color:var(--ink);margin-bottom:6px}
.tl-page .tl-cc .mt-bc-sau{margin-top:20px}
.tl-page .tl-cc-trai #i-ma{color:var(--ink);font:400 15px/1.5 var(--font-mono);padding:11px 13px}
.tl-page .goi{margin:6px 0 0;font-size:12.5px;color:var(--muted);line-height:1.45}
.tl-page .mt-nut{margin-top:22px}
.tl-page .anh-khung{position:relative;border-radius:14px;overflow:hidden;background:var(--bg);display:none;margin-bottom:12px}
.tl-page .anh-khung canvas{display:block;width:100%;height:auto;max-height:520px;object-fit:contain;cursor:crosshair}
.tl-page .kinh{position:absolute;width:34px;height:34px;border:3px solid #ffffff;border-radius:50%;box-shadow:0 0 0 2px var(--ink);pointer-events:none;display:none;transform:translate(-50%,-50%)}
.tl-page .tl-hop .mt-h3{font-size:15.5px;margin:20px 0 10px;color:var(--ink)}
.tl-page .tl-cc-cho+.anh-khung+#o-anh-canh+.mt-h3{margin-top:18px}
.tl-page .mt-ma{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px}
.tl-page .o-lon{border-radius:16px;border:1px solid var(--line);min-height:96px}
.tl-page .ma-list{display:grid;gap:8px}
.tl-page .ma{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:11px;align-items:center;background:var(--bg);border-radius:12px;padding:9px 13px}
.tl-page .ma .k{font:700 10.5px/1 var(--font-body);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);min-width:34px}
.tl-page .ma .v{font-family:var(--font-mono);font-size:14px;color:var(--ink);word-break:break-all}
.tl-page .ma button{border:1px solid var(--line);background:var(--surface);color:var(--blue-d);border-radius:999px;padding:6px 12px;font:600 12px/1 var(--font-body);cursor:pointer;white-space:nowrap}
.tl-page .ma button:hover{background:var(--blue-soft);border-color:var(--blue)}
.tl-page .tl-cc-phai .btns{margin-top:12px}
.tl-page .tl-cc-cho:not([hidden])~.mt-bang{display:none}
.tl-page .mt-cap{font-size:13.5px;color:var(--muted);margin:12px 0 0;line-height:1.5}
.tl-page .mt-cap b{color:var(--ink)}
.tl-page .bang-mau{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}
.tl-page .mt-vd-mau .sw{cursor:default}
@media (max-width:620px){
.tl-page .bang-mau{grid-template-columns:repeat(3,minmax(0,1fr))}
.tl-page .mt-ma{grid-template-columns:minmax(0,1fr)}
.tl-page .o-lon{min-height:64px}
}
.tl-page .sw{display:block;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface);cursor:pointer;padding:0;text-align:left}
.tl-page .sw i{display:block;height:54px}
.tl-page .sw span{display:block;padding:7px 8px;font-family:var(--font-mono);font-size:11px;color:var(--ink)}
.tl-page .sw em{display:block;padding:0 8px 7px;font-size:11px;color:var(--muted);font-style:normal}
.tl-page .sw:hover{border-color:var(--blue)}
.tl-page .btns{display:flex;flex-wrap:wrap;gap:8px}
.tl-page .btn{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:999px;padding:10px 16px;font:600 13.5px/1.2 var(--font-body);cursor:pointer}
.tl-page .btn:hover{background:var(--blue-soft);border-color:var(--blue);color:var(--blue-d)}
.tl-page .tp-khung{margin-top:18px;background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.tl-page .tp-xem{padding:28px 24px}
.tl-page .tp-xem p{margin:0}
.tl-page .tp-xem .to{font-size:26px;font-weight:700;line-height:1.3}
.tl-page .tp-xem .nho{font-size:15px;margin-top:10px;line-height:1.6}
.tl-page .tp-so{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;padding:16px 24px;border-top:1px solid var(--line);background:var(--bg)}
.tl-page .tp-so .num{font:700 30px/1 var(--font-body);font-variant-numeric:tabular-nums;color:var(--ink)}
.tl-page .tp-hang{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.tl-page .hng{font:700 11.5px/1 var(--font-body);letter-spacing:.06em;padding:7px 11px;border-radius:999px}
.tl-page .hng.dat{background:var(--green-soft);color:#046b47}
.tl-page .hng.kdat{background:var(--red-soft);color:var(--red-ink)}
.tl-page .ban-giao{margin-top:26px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--yellow);border-radius:16px;padding:18px 22px}
.tl-page .ban-giao h4{font-size:16px;margin-bottom:10px}
.tl-page .ban-giao ul{margin:0;padding-left:20px}
.tl-page .ban-giao li{font-size:14.5px;margin:6px 0;line-height:1.55}
/* Ô nhập của khung kiểm tương phản trong phần nội dung (content.html) */
.tl-page .f{margin-top:14px}
.tl-page .f label{display:block;font:700 11.5px/1 var(--font-body);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:7px}
.tl-page .f input[type=text],.tl-page .f select{width:100%;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);font:400 15px/1.5 var(--font-body);padding:11px 13px}
.tl-page .f input:focus,.tl-page .f select:focus{outline:2px solid var(--blue);outline-offset:1px;background:var(--surface)}
.tl-page .f .goi{margin-top:6px;font-size:12.5px;color:var(--muted)}
.tl-page .f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:620px){.tl-page .f2{grid-template-columns:1fr}}
