/* Lane D — giao diện riêng (màn chấm tự luận, hệ sinh thái mở). Dùng biến --v2-* của shell-v2.css. */
html[data-ui="v2"] .ld-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 10px; color: var(--v2-muted); font-size: 14px; }
html[data-ui="v2"] .ld-h { font-size: 16px; margin: 0 0 10px; }
html[data-ui="v2"] .ld-grade { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 18px; align-items: start; }
html[data-ui="v2"] .ld-students { position: sticky; top: 16px; max-height: calc(100vh - 120px); overflow: auto; padding: 14px; }
html[data-ui="v2"] .ld-stu-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
html[data-ui="v2"] .ld-stu {
  width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 8px; min-height: 40px;
  padding: 8px 10px; border: 0; border-radius: 8px; background: none; color: var(--v2-fg); font: 400 14.5px/1.3 var(--v2-font);
  text-align: left; cursor: pointer;
}
html[data-ui="v2"] .ld-stu:hover { background: var(--v2-card-2); }
html[data-ui="v2"] .ld-stu.is-on { background: var(--v2-accent-soft); color: var(--v2-fg); font-weight: 700; box-shadow: inset 3px 0 0 var(--v2-accent); }
html[data-ui="v2"] .ld-stu:focus-visible { outline: 2px solid var(--v2-accent); outline-offset: 1px; }
html[data-ui="v2"] .ld-main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
html[data-ui="v2"] .ld-main h2:focus { outline: none; }
html[data-ui="v2"] .ld-q { display: flex; flex-direction: column; gap: 10px; padding-top: 14px; border-top: 1px solid var(--v2-line); }
html[data-ui="v2"] .ld-q p { margin: 0; }
html[data-ui="v2"] .ld-qtext { font-weight: 500; overflow-wrap: anywhere; }
/* Nền trắng CÓ CHỦ ĐÍCH (kể cả nền tối): ảnh đề thường nền trong suốt, nét đen — nền tối làm mất nét vẽ. */
html[data-ui="v2"] .ld-qimg { max-width: 100%; max-height: 260px; object-fit: contain; border-radius: 8px; background: #fff; }
html[data-ui="v2"] .ld-answer {
  background: var(--v2-card-2); border: 1px solid var(--v2-line); border-radius: 10px; padding: 14px 16px;
  font-size: 15.5px; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere;
}
html[data-ui="v2"] .ld-answer.is-empty { color: var(--v2-muted); font-style: italic; }
html[data-ui="v2"] .ld-private { font-size: 14px; color: var(--v2-fg-2); }
html[data-ui="v2"] .ld-private summary { cursor: pointer; color: var(--v2-fg); text-decoration: underline; text-underline-offset: 3px; padding: 4px 0; }
html[data-ui="v2"] .ld-private p { margin: 6px 0 2px; }
html[data-ui="v2"] .ld-sample { white-space: pre-wrap; overflow-wrap: anywhere; }
html[data-ui="v2"] .ld-ai { border: 1px solid var(--v2-ai-soft); border-left: 4px solid var(--v2-ai); border-radius: 10px; padding: 12px 14px; display: flex; flex-direction: column; gap: 6px; }
html[data-ui="v2"] .ld-ai-head { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
html[data-ui="v2"] .ld-ai-reasons { margin: 0; padding-left: 20px; font-size: 14px; color: var(--v2-fg-2); }
html[data-ui="v2"] .ld-ai-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
html[data-ui="v2"] .ld-ai-row .ld-err { flex-basis: 100%; }
html[data-ui="v2"] .ld-score-grid { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 12px; }
html[data-ui="v2"] .ld-field { display: flex; flex-direction: column; gap: 6px; font-size: 13.5px; color: var(--v2-fg-2); min-width: 0; }
html[data-ui="v2"] .ld-field--wide { grid-column: 2 / -1; }
html[data-ui="v2"] .ld-criteria + .ld-score-grid .ld-field--wide { grid-column: 1 / -1; }
html[data-ui="v2"] .ld-field input, html[data-ui="v2"] .ld-field textarea, html[data-ui="v2"] .ld-crit input {
  min-height: 40px; padding: 8px 10px; border: 1px solid var(--v2-line-2); border-radius: 8px; background: var(--v2-surface);
  color: var(--v2-fg); font: 400 15px/1.4 var(--v2-font); width: 100%; box-sizing: border-box;
}
html[data-ui="v2"] .ld-field textarea { resize: vertical; }
html[data-ui="v2"] .ld-field input:focus-visible, html[data-ui="v2"] .ld-field textarea:focus-visible, html[data-ui="v2"] .ld-crit input:focus-visible { outline: 2px solid var(--v2-accent); outline-offset: 1px; }
html[data-ui="v2"] .ld-criteria { border: 1px solid var(--v2-line); border-radius: 10px; padding: 10px 14px 12px; margin: 0; display: grid; gap: 8px; min-width: 0; }
html[data-ui="v2"] .ld-criteria legend { padding: 0 6px; font-size: 13.5px; color: var(--v2-fg-2); }
html[data-ui="v2"] .ld-crit { display: grid; grid-template-columns: minmax(0, 1fr) 96px; gap: 10px; align-items: center; font-size: 14.5px; }
html[data-ui="v2"] .ld-total { margin: 4px 0 0; text-align: right; }
html[data-ui="v2"] .ld-err { margin: 0; color: var(--v2-bad); font-size: 14px; }
html[data-ui="v2"] .ld-nav { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; margin-top: 4px; }
html[data-ui="v2"] .ld-guard p { margin: 0 0 8px; }
html[data-ui="v2"] .ld-measure { max-width: 56ch; }
html[data-ui="v2"] .ld-grading .v2-success h2 { font-size: 20px; }
html[data-ui="v2"] .ld-grading .v2-success .v2-row { margin-top: 8px; }
@media (max-width: 900px) {
  html[data-ui="v2"] .ld-grade { grid-template-columns: minmax(0, 1fr); }
  html[data-ui="v2"] .ld-students { position: static; max-height: 220px; }
}
@media (max-width: 520px) {
  html[data-ui="v2"] .ld-score-grid { grid-template-columns: minmax(0, 1fr); }
  html[data-ui="v2"] .ld-field--wide { grid-column: auto; }
  html[data-ui="v2"] .ld-crit { grid-template-columns: minmax(0, 1fr) 80px; }
  html[data-ui="v2"] .ld-nav .v2-btn { flex: 1 1 auto; }
}

/* ── Hồ sơ & Thư viện mở (A8) ─────────────────────────────────────────── */
html[data-ui="v2"] .ld-form { display: flex; flex-direction: column; gap: 14px; }
html[data-ui="v2"] .ld-form h2 { margin: 0; }
html[data-ui="v2"] .ld-form .v2-sub, html[data-ui="v2"] .ld-form p { margin: 0; }
html[data-ui="v2"] .ld-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; color: var(--v2-fg); cursor: pointer; }
html[data-ui="v2"] .ld-check input { width: 18px; height: 18px; margin: 2px 0 0; flex: none; accent-color: var(--v2-accent); }
html[data-ui="v2"] .ld-handle { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
html[data-ui="v2"] .ld-handle input { flex: 1 1 160px; min-width: 0; }
html[data-ui="v2"] .ld-subjects { border: 1px solid var(--v2-line); border-radius: 10px; padding: 10px 14px 12px; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px 14px; }
html[data-ui="v2"] .ld-subjects legend { padding: 0 6px; font-size: 13.5px; color: var(--v2-fg-2); }
html[data-ui="v2"] .ld-profile { display: flex; flex-direction: column; gap: 14px; }
html[data-ui="v2"] .ld-profile-main { display: flex; gap: 16px; align-items: flex-start; }
html[data-ui="v2"] .ld-profile-main p { margin: 4px 0 0; }
html[data-ui="v2"] .ld-avatar { width: 56px; height: 56px; border-radius: 50%; flex: none; display: grid; place-items: center; background: var(--v2-accent-soft); color: var(--v2-fg); font-weight: 700; font-size: 22px; }
html[data-ui="v2"] .ld-quota { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
html[data-ui="v2"] .ld-quota p { margin: 0; }
html[data-ui="v2"] .ld-bar { height: 8px; border-radius: 99px; background: var(--v2-card-2); border: 1px solid var(--v2-line); overflow: hidden; }
html[data-ui="v2"] .ld-bar span { display: block; height: 100%; background: var(--v2-accent); }
html[data-ui="v2"] .ld-docs-head { display: flex; flex-direction: column; gap: 10px; }
html[data-ui="v2"] .ld-docs-head p { margin: 0; }
html[data-ui="v2"] .ld-warn { border-color: var(--v2-warn); background: var(--v2-warn-soft); color: var(--v2-fg); margin-bottom: 14px; }
html[data-ui="v2"] .ld-warn-text { color: var(--v2-warn); margin: 4px 0 0; }
html[data-ui="v2"] .ld-upload-err { border-color: var(--v2-bad); }
html[data-ui="v2"] .ld-community .v2-todo .v2-row { flex: 0 1 auto; }
html[data-ui="v2"] .ld-community .v2-todo-body strong { overflow-wrap: anywhere; }
html[data-ui="v2"] .ld-tabpanel { margin-top: 0; }
html[data-ui="v2"] .v2-drawer .ld-tax { min-height: 40px; }
html[data-ui="v2"] .v2-drawer .ld-form p { margin: 0; }

/* ── Kiểm duyệt (A8b) ─────────────────────────────────────────────────── */
html[data-ui="v2"] .ld-mod-stats { display: grid; gap: 10px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 170px), 1fr)); margin-bottom: 18px; }
html[data-ui="v2"] .ld-mod-stats strong { font-size: 22px; }
html[data-ui="v2"] .ld-mod-card { display: flex; flex-direction: column; gap: 10px; }
html[data-ui="v2"] .ld-mod-card p { margin: 0; }
html[data-ui="v2"] .ld-mod-card h3 { overflow-wrap: anywhere; }
html[data-ui="v2"] .ld-mod-act { display: flex; flex-direction: column; gap: 8px; padding: 12px; border-radius: 10px; background: var(--v2-card-2); border: 1px solid var(--v2-line); }
html[data-ui="v2"] .ld-quote { margin: 4px 0; padding: 8px 12px; border-left: 3px solid var(--v2-line-2); background: var(--v2-card-2); border-radius: 0 8px 8px 0; overflow-wrap: anywhere; }
html[data-ui="v2"] .ld-moderation .v2-filters { margin-bottom: 12px; }
html[data-ui="v2"] .ld-moderation .v2-table td { overflow-wrap: anywhere; }
html[data-ui="v2"] .ld-field .v2-select { width: 100%; }
html[data-ui="v2"] .ld-comment { padding: 12px 14px; border: 1px solid var(--v2-line); border-radius: 10px; background: var(--v2-card); }
html[data-ui="v2"] .ld-comment p { margin: 6px 0 0; overflow-wrap: anywhere; white-space: pre-wrap; }
html[data-ui="v2"] .ld-comment-head { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
html[data-ui="v2"] .ld-comment-tools { margin-top: 6px; }
html[data-ui="v2"] .ld-item { display: flex; flex-direction: column; gap: 10px; }
html[data-ui="v2"] .ld-item p { margin: 0; }
html[data-ui="v2"] .ld-item-title { font-size: 24px !important; overflow-wrap: anywhere; }
html[data-ui="v2"] .ld-item-actions { justify-content: flex-start; align-items: center; }
html[data-ui="v2"] .ld-author { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding-top: 12px; border-top: 1px solid var(--v2-line); }
html[data-ui="v2"] .ld-author > div:nth-child(2) { flex: 1 1 160px; min-width: 0; }
html[data-ui="v2"] .ld-reasons { border: 0; padding: 0; margin: 0; display: grid; gap: 8px; }
html[data-ui="v2"] .ld-reasons legend { font-size: 13.5px; color: var(--v2-fg-2); margin-bottom: 6px; }
html[data-ui="v2"] .ld-community a.v2-btn, html[data-ui="v2"] .ld-moderation a.v2-btn { text-decoration: none; line-height: 1.2; box-sizing: border-box; }
html[data-ui="v2"] .ld-community p.v2-chip, html[data-ui="v2"] .ld-moderation p.v2-chip { width: fit-content; max-width: 100%; margin: 0 0 12px; }
html[data-ui="v2"] .ld-item p.v2-chip { margin: 0; }
html[data-ui="v2"] .ld-comments { margin-top: 12px; }

/* ── Bán hàng (A9, A10) ───────────────────────────────────────────────── */
html[data-ui="v2"] .ld-grid-2 { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); }
html[data-ui="v2"] .ld-tt29 { padding: 12px; border-radius: 10px; border: 1px solid var(--v2-warn); background: var(--v2-warn-soft); }
html[data-ui="v2"] .v2-drawer .ld-form .v2-select { width: 100%; }

/* 2026-11-02: duyệt sản phẩm bán, doanh thu theo loại, trang thanh toán của admin. */
html[data-ui="v2"] .ld-mod-contents { list-style: none; margin: 8px 0; padding: 0; display: grid; gap: 6px; }
html[data-ui="v2"] .ld-mod-contents li { justify-content: space-between; gap: 8px; flex-wrap: wrap; }
html[data-ui="v2"] .ld-payout-account { justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
html[data-ui="v2"] .ld-pay-code { font-family: ui-monospace, Consolas, monospace; letter-spacing: 0.04em; overflow-wrap: anywhere; }
html[data-ui="v2"] .ld-pay-form { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); align-items: end; margin-top: 10px; }

/* Chấm bài nộp bằng ảnh (grading-photo.js): dùng được trên điện thoại, nút đủ to, không tràn ngang. */
html[data-ui="v2"] .lp-stack { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
html[data-ui="v2"] .lp-grading textarea, html[data-ui="v2"] .lp-grading input[type="text"] { width: 100%; box-sizing: border-box; padding: 10px; border: 1px solid var(--v2-line); border-radius: 8px; background: var(--v2-card); color: var(--v2-fg); font: 400 16px/1.5 var(--v2-font); }
html[data-ui="v2"] .lp-grading .v2-btn { min-height: 44px; }
html[data-ui="v2"] .lp-h { margin: 0; font-size: 17px; }
html[data-ui="v2"] .lp-q { margin: 0; overflow-wrap: anywhere; }
html[data-ui="v2"] .lp-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 0; border-top: 1px solid var(--v2-line); }
html[data-ui="v2"] .lp-row-main { min-width: 0; flex: 1 1 160px; overflow-wrap: anywhere; }
html[data-ui="v2"] .lp-row-main p { margin: 2px 0 0; font-size: 13.5px; color: var(--v2-muted); }
html[data-ui="v2"] .lp-template { white-space: pre-wrap; background: var(--v2-card-2); border-radius: 8px; padding: 10px; font-size: 14px; }
html[data-ui="v2"] .lp-crit { display: grid; grid-template-columns: minmax(0, 1fr) 78px; gap: 6px 10px; padding: 10px 0; border-top: 1px solid var(--v2-line); align-items: start; }
html[data-ui="v2"] .lp-crit-label { overflow-wrap: anywhere; }
html[data-ui="v2"] .lp-crit-full { grid-column: 1 / -1; min-width: 0; }
html[data-ui="v2"] .lp-quote { margin: 4px 0 0; padding-left: 10px; border-left: 3px solid var(--v2-line); font-style: italic; font-size: 14px; overflow-wrap: anywhere; }
html[data-ui="v2"] .lp-quote--missing { color: var(--v2-muted); font-style: normal; }
html[data-ui="v2"] .lp-photos { display: flex; gap: 10px; overflow-x: auto; padding-bottom: 6px; }
html[data-ui="v2"] .lp-photos a { flex: 0 0 auto; }
html[data-ui="v2"] .lp-photos img { height: 220px; max-width: 80vw; object-fit: contain; border-radius: 8px; border: 1px solid var(--v2-line); background: #fff; display: block; }
html[data-ui="v2"] .lp-fix { display: flex; gap: 8px; align-items: flex-start; padding: 6px 0; overflow-wrap: anywhere; min-width: 0; }
html[data-ui="v2"] .lp-fix input { margin-top: 4px; flex: 0 0 auto; }
html[data-ui="v2"] .lp-total { font-size: 18px; font-weight: 700; margin: 0; }
html[data-ui="v2"] .lp-progress { height: 8px; border-radius: 4px; background: var(--v2-card-2); overflow: hidden; }
html[data-ui="v2"] .lp-progress > span { display: block; height: 100%; background: var(--v2-accent); }
