/* 豆豆 · 衔接诊断「小数乘法竖式」格子样式 v1（开发包 B；类名 dlm-*，不影响除法 dtb-* 和画图 dgd-*） */
.dlm-pad {
  --dlm-cell: 38px;
  --dlm-row: 46px;
  --dlm-sign: 40px;
  --dlm-act: 34px;
  --dlm-ink: var(--dv-ink, #24332c);
  --dlm-child: #2e6fb0;
  --dlm-green: var(--dv-green, #2f8f5b);
  --dlm-red: var(--dv-red, #cf3f2c);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin: 8px auto 4px;
  max-width: 100%;
  min-width: 0;
  color: var(--dlm-ink);
}
.dlm-sheet {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  max-width: 100%;
  overflow-x: auto;
  padding: 2px 2px 6px;
  font: 500 30px/1 var(--dv-mono, ui-monospace, Menlo, monospace);
  font-variant-numeric: tabular-nums;
}
.dlm-line {
  display: grid;
  grid-template-columns: var(--dlm-sign) repeat(9, var(--dlm-cell)) var(--dlm-act);
  align-items: center;
  justify-items: center;
  min-height: var(--dlm-row);
}
.dlm-sign { font-size: 26px; color: var(--dlm-ink); }
.dlm-row-no, .dlm-product-label, .dlm-carry-label { font: 600 13px/1.2 var(--dv-sans, system-ui, sans-serif); color: #6b7a72; }
.dlm-num { position: relative; display: inline-flex; align-items: center; justify-content: center; width: var(--dlm-cell); height: var(--dlm-row); }
/* 小数点：画在那一格的右下角，不占格 */
.dlm-has-point::after {
  content: '';
  position: absolute;
  right: -4px;
  bottom: 9px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  pointer-events: none;
}
.dlm-rule { height: 2.5px; border-radius: 2px; background: var(--dlm-ink); margin: 2px var(--dlm-act) 2px calc(var(--dlm-sign) - 4px); }
.dlm-cell {
  position: relative;
  box-sizing: border-box;
  width: calc(var(--dlm-cell) - 4px);
  height: calc(var(--dlm-row) - 6px);
  padding: 0;
  border: 1.5px dashed #b9c7bf;
  border-radius: 8px;
  background: #fbfdfb;
  color: var(--dlm-child);
  font: inherit;
  text-align: center;
  caret-color: var(--dlm-child);
}
.dlm-cell:focus { outline: 2.5px solid #7fb8e6; outline-offset: 1px; border-style: solid; }
.dlm-cell:disabled { background: transparent; border-color: transparent; color: var(--dlm-child); opacity: 1; -webkit-text-fill-color: var(--dlm-child); }
/* 输入框不能用 ::after，小数点用背景画在右下角 */
input.dlm-cell.dlm-has-point {
  background-image: radial-gradient(circle at calc(100% - 2px) calc(100% - 9px), currentColor 3.6px, transparent 4.2px);
  background-repeat: no-repeat;   /* 不平铺：否则圆点会在格子左边缘露出半个 */
}
input.dlm-cell.dlm-has-point::after { display: none; }
.dlm-cell.dlm-crossed { color: #9aa7a0; -webkit-text-fill-color: #9aa7a0; text-decoration: line-through; text-decoration-thickness: 3px;
  background-image: linear-gradient(120deg, transparent 44%, var(--dlm-red) 45%, var(--dlm-red) 55%, transparent 56%); background-repeat: no-repeat; }
.dlm-cell.dlm-crossed.dlm-has-point { background-image: linear-gradient(120deg, transparent 44%, var(--dlm-red) 45%, var(--dlm-red) 55%, transparent 56%),
  radial-gradient(circle at calc(100% - 2px) calc(100% - 9px), currentColor 3.6px, transparent 4.2px); background-repeat: no-repeat; }
.dlm-cell.dlm-pointing { border-color: #e0a92c; cursor: pointer; }
.dlm-carry { min-height: 30px; }
.dlm-carry .dlm-cell { height: 26px; width: calc(var(--dlm-cell) - 12px); font-size: 15px; border-style: dotted; color: #8a6d2b; -webkit-text-fill-color: #8a6d2b; }
.dlm-del { width: 28px; height: 28px; border: 1px solid #d6ddd9; border-radius: 50%; background: #fff; color: #8a958f; font: 600 16px/1 var(--dv-sans, system-ui, sans-serif); cursor: pointer; }
.dlm-flag { background: #fff1ee; border-radius: 10px; box-shadow: inset 0 0 0 2px #f2b4a8; }
.dlm-point-flag { box-shadow: 0 0 0 2px #f2b4a8; }
.dlm-product.dlm-right .dlm-cell { color: var(--dlm-green); -webkit-text-fill-color: var(--dlm-green); }
.dlm-product.dlm-wrong .dlm-cell:not(.dlm-crossed) { color: var(--dlm-red); -webkit-text-fill-color: var(--dlm-red); }
.dlm-tools { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; max-width: 100%; }
.dlm-tools[hidden] { display: none; }
.dlm-tool { min-height: 40px; padding: 6px 12px; border: 1.5px solid #c9d6ce; border-radius: 12px; background: #fff; color: #2c4a3b; font: 600 15px/1.2 var(--dv-sans, system-ui, sans-serif); cursor: pointer; }
.dlm-tool.active { border-color: #e0a92c; background: #fff6dc; }
.dlm-tool:disabled { opacity: .45; cursor: default; }
.dlm-tool[hidden] { display: none; }
.dlm-status { margin: 0; min-height: 1.2em; font: 500 14px/1.5 var(--dv-sans, system-ui, sans-serif); color: #5b6b63; text-align: center; }
.dlm-status.warn { color: #9a4b12; }
.dlm-status:empty { display: none; }
.dlm-readonly .dlm-cell { border-color: transparent; background-color: transparent; }
@media (max-width: 520px) {
  .dlm-pad { --dlm-cell: 30px; --dlm-row: 40px; --dlm-sign: 28px; --dlm-act: 28px; }
  .dlm-sheet { font-size: 24px; }
  .dlm-sign { font-size: 20px; }
  .dlm-row-no, .dlm-product-label, .dlm-carry-label { font-size: 11px; }
  .dlm-carry .dlm-cell { width: calc(var(--dlm-cell) - 6px); font-size: 13px; }
  .dlm-del { width: 24px; height: 24px; font-size: 14px; }
  .dlm-tool { font-size: 14px; padding: 6px 10px; }
}
