/* 漢字書き取りメーカー */
.kd-main { max-width: 1100px; }
.kd-layout { display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr); gap: 1rem; align-items: start; }
.kd-side, .kd-view { min-width: 0; }
.kd-view { position: sticky; top: 0.8rem; }
.kd-side [hidden] { display: none !important; }
.kd-two { display: grid; grid-template-columns: 1fr 1fr; gap: 0 0.9rem; }
.kd-side .pt-seg { display: flex; width: 100%; }
.kd-side .pt-seg label { flex: 1; text-align: center; }
.kd-side .pt-seg.kd-seg-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.kd-side .pt-seg.kd-seg-grid label { padding-left: 0.3rem; padding-right: 0.3rem; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); margin: 0 -1px -1px 0; }
.kd-side textarea { width: 100%; min-height: 10rem; resize: vertical; font-family: inherit; line-height: 1.6; }
.kd-count { margin-top: 0.5rem; font-size: 0.85rem; color: var(--text-sub); }

.kd-side .pt-hint + .form-group { margin-top: 0.9rem; }
.kd-numauto { display: flex; align-items: center; gap: 0.5rem; }
.kd-numauto input[type="number"] { width: 5.2rem; flex: none; }
.kd-numauto input[type="number"]:disabled { opacity: 0.45; }
.kd-unit { color: var(--text-sub); font-size: 0.9rem; }
.kd-autobtn { margin: 0 0 0 auto; cursor: pointer; }
.kd-autobtn input { position: absolute; opacity: 0; pointer-events: none; }
.kd-autobtn span { display: block; padding: 0.38rem 1rem; font-size: 0.9rem; border: 1px solid var(--border); border-radius: 6px; background: var(--surface); color: var(--text); user-select: none; }
.kd-autobtn:hover span { border-color: var(--pt-accent); }
.kd-autobtn input:checked + span { border-color: var(--pt-accent); background: var(--pt-accent-soft); color: var(--pt-accent); font-weight: 700; box-shadow: inset 0 0 0 1px var(--pt-accent); }
.kd-autobtn input:focus-visible + span { outline: 2px solid var(--pt-accent); outline-offset: 1px; }

.kd-actions { margin-top: 0; }
.kd-desc { font-size: 0.9rem; color: var(--text-sub); margin: 0.6rem 0; }
.kd-stage { display: flex; flex-direction: column; align-items: center; gap: 0.9rem; padding: 0.8rem; background: #e5e7eb; border-radius: 6px; max-height: 80vh; overflow: auto; }
html[data-theme="dark"] .kd-stage { background: #2a2f38; }
.kd-page { width: 100%; max-width: 560px; }
.kd-page-label { font-size: 0.8rem; color: #475569; margin-bottom: 0.2rem; }
html[data-theme="dark"] .kd-page-label { color: #aab4c2; }
.kd-page svg { display: block; width: 100%; height: auto; border: 1px solid #cbd5e1; background: #fff; box-shadow: none; }
.kd-view .pt-hint { margin-top: 0.8rem; }

#kd-print { display: none; }

@media (max-width: 860px) {
  .kd-layout { grid-template-columns: minmax(0, 1fr); }
  .kd-view { position: static; order: -1; }
  .kd-stage { max-height: 60vh; }
}
@media (max-width: 420px) {
  .kd-two { grid-template-columns: 1fr; }
}

@media print {
  html, body { background: #fff !important; }
  body > *:not(#kd-print) { display: none !important; }
  #kd-print { display: block !important; }
  .kd-sheet { overflow: hidden; break-after: page; page-break-after: always; }
  .kd-sheet:last-child { break-after: auto; page-break-after: auto; }
  .kd-sheet svg { display: block; }
}

/* 学年選択 */
.kd-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; }
.kd-chips-label { flex-basis: 100%; font-size: 0.8rem; color: var(--text-sub); margin-top: 0.2rem; }
.kd-chips-label:first-child { margin-top: 0; }
.kd-chips label { display: inline-flex; margin: 0; cursor: pointer; }
.kd-chips input { position: absolute; opacity: 0; pointer-events: none; }
.kd-chips span:not(.kd-chips-label) { display: inline-block; min-width: 3rem; text-align: center; padding: 0.35rem 0.6rem; border: 1px solid var(--border); border-radius: 6px; background: var(--surface); font-size: 0.9rem; }
.kd-chips input:checked + span { background: var(--blue, #3b82f6); border-color: var(--blue, #3b82f6); color: #fff; }
.kd-chips input:focus-visible + span { outline: 2px solid var(--blue, #3b82f6); outline-offset: 2px; }

/* 項目の見出し（入力部品を持たないもの）と、問題の進む向きの選択肢 */
.kd-flabel { display: block; font-size: 0.875rem; color: var(--text-sub); margin-bottom: 0.4rem; font-weight: 500; }
.kd-fos { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
.kd-fo { display: block; margin: 0; cursor: pointer; }
.kd-fo input { position: absolute; opacity: 0; pointer-events: none; }
.kd-fo-box { display: block; height: 100%; padding: 0.5rem 0.4rem 0.45rem; text-align: center; border: 1px solid var(--border); border-radius: 6px; background: var(--surface); }
.kd-fo:hover .kd-fo-box { border-color: var(--pt-accent); }
.kd-fo input:checked + .kd-fo-box { border-color: var(--pt-accent); background: var(--pt-accent-soft); box-shadow: inset 0 0 0 1px var(--pt-accent); }
.kd-fo input:focus-visible + .kd-fo-box { outline: 2px solid var(--pt-accent); outline-offset: 2px; }
.kd-fo-t { display: block; font-size: 0.85rem; font-weight: 700; color: var(--text); line-height: 1.35; margin-bottom: 0.3rem; }
.kd-fo-fig { display: inline-block; font-style: normal; padding: 0.15rem 0.5rem; border: 1px dashed var(--border); border-radius: 4px; background: var(--bg); }
.kd-fo-fig u { display: block; text-decoration: none; font-size: 0.82rem; letter-spacing: 0.12em; line-height: 1.5; color: var(--text-sub); }
.kd-fo input:checked + .kd-fo-box .kd-fo-fig u { color: var(--pt-accent); font-weight: 700; }

/* 各項目の「?」ボタンと説明モーダル */
.kd-q {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.45rem; height: 1.45rem; margin: 0 0 0 0.4rem; padding: 0; vertical-align: middle;
  border: 1px solid var(--border); border-radius: 6px; background: var(--surface);
  color: var(--pt-accent); font: 700 0.78rem/1 var(--font); cursor: pointer; flex-shrink: 0;
}
.kd-q:hover, .kd-q:focus-visible { border-color: var(--pt-accent); background: var(--pt-accent-soft); }
.pt-check .kd-q { margin-top: -0.1rem; }
@media (pointer: coarse) { .kd-q { width: 1.9rem; height: 1.9rem; font-size: 0.9rem; } }

.kd-hint-modal { z-index: 2100; }
.kd-hint-modal .help-modal-inner { max-width: 640px; }
.kd-hint-modal .help-modal-body ol, .kd-hint-modal .help-modal-body ul { padding-left: 1.4rem; margin: 0 0 0.5rem; }
.kd-hint-modal .help-modal-body li { margin-bottom: 0.25rem; }
.kd-hint-modal .help-modal-body:focus { outline: none; }
.kd-hd-lead { font-weight: 700; margin-bottom: 0.6rem; }
.kd-hd-now { margin: 0.2rem 0 0.4rem; padding: 0.4rem 0.7rem; font-size: 0.85rem; background: var(--pt-accent-soft); border: 1px solid var(--border); border-radius: 6px; }
.kd-hd-now[hidden] { display: none; }
.kd-figs { display: flex; flex-direction: column; gap: 0.7rem; margin: 0.4rem 0 0.8rem; }
.kd-fig { margin: 0; padding: 0.6rem 0.4rem; background: var(--bg); border: 1px solid var(--border); border-radius: 6px; }
.kd-hd-tbl { width: 100%; border-collapse: collapse; margin: 0.2rem 0 0.8rem; font-size: 0.85rem; }
.kd-hd-tbl th, .kd-hd-tbl td { border: 1px solid var(--border); padding: 0.3rem 0.6rem; text-align: left; }
.kd-hd-tbl th { background: var(--bg); font-weight: 700; }
@media (max-width: 600px) { .kd-hint-modal { padding: 0.5rem; } .kd-hint-modal .help-modal-inner { max-height: 92vh; } }

/* 説明の図（SVG）。色は共通トークンで、ダークモードにも追従する */
.hd { display: block; width: 100%; max-width: 440px; height: auto; margin: 0 auto; font-family: var(--font); }
.hd text { font-family: var(--font); }
.hd-paper { fill: var(--surface); stroke: var(--text-sub); stroke-width: 1.2; }
.hd-mgz { fill: var(--pt-warn-soft); stroke: var(--pt-warn); stroke-width: 1; }
.hd-gpz { fill: var(--pt-warn-line); stroke: none; }
.hd-pg { fill: var(--pt-accent-soft); stroke: var(--pt-accent); stroke-width: 1; }
.hd-pg2 { fill: var(--pt-ok-soft); stroke: var(--pt-ok); stroke-width: 1; }
.hd-pgr { fill: var(--pt-err-soft); stroke: var(--pt-err); stroke-width: 1; }
.hd-dim { fill: var(--bg); stroke: var(--border); stroke-width: 1; }
.hd-bl { fill: none; stroke: var(--text-sub); stroke-width: 1; stroke-dasharray: 3 3; }
.hd-cell { fill: var(--surface); stroke: var(--text-sub); stroke-width: 1; }
.hd-cellm { fill: var(--surface); stroke: var(--text); stroke-width: 1.3; }
.hd-gd { stroke: var(--text-sub); stroke-width: 0.7; stroke-dasharray: 2 2; opacity: 0.75; }
.hd-ln { stroke: var(--text-sub); stroke-width: 1; }
.hd-dash { stroke-dasharray: 4 3; }
.hd-thick { stroke-width: 2.2; }
.hd-a { stroke: var(--pt-accent); stroke-width: 1.6; fill: none; }
.hd-ahf { fill: var(--pt-accent); }
.hd-red { stroke: var(--pt-err); stroke-width: 1.4; fill: none; }
.hd-ring { fill: none; stroke: var(--pt-err); stroke-width: 1.2; }
.hd-dot { fill: var(--pt-accent); }
.hd-dot0 { fill: var(--border); }
.hd-t { fill: var(--text); font-size: 12px; }
.hd-ts { fill: var(--text-sub); font-size: 10.5px; }
.hd-tb { fill: var(--text); font-size: 12.5px; font-weight: 700; }
.hd-tn { fill: var(--pt-accent); font-size: 12px; font-weight: 700; }
.hd-tw { fill: var(--pt-warn); font-size: 11px; font-weight: 700; }
.hd-tr { fill: var(--pt-err); font-weight: 700; }
.hd-k { fill: var(--text); font-weight: 700; }
.hd-k-kyo { font-family: "UD デジタル 教科書体 N-R", "UD Digital Kyokasho N-R", "Klee One", "Hiragino Mincho ProN", serif; }
.hd-k-min { font-family: "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif; }
.hd-k-got { font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif; }
.hd text.hd-k { font-weight: 400; }
.kd-nb { white-space: nowrap; }

/* 記入欄の細かい選択（タイトルの下の欄） */
.kd-sub { display: grid; grid-template-columns: 1fr 1fr; gap: 0 0.9rem; margin: 0 0 0.6rem 1.4rem; padding-left: 0.7rem; border-left: 2px solid var(--border); }
.kd-sub[hidden], #kd-perpt-wrap[hidden], #kd-hscore-wrap[hidden] { display: none; }
@media (max-width: 560px) { .kd-sub { grid-template-columns: 1fr; } }

/* ───────── 簡単作成モード ───────── */
.kd-modebar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; margin: 0 0 0.9rem; }
.kd-mb-note { font-size: 0.85rem; color: var(--text-sub); flex: 1 1 14rem; }
.kd-segb { display: inline-flex; border: 1px solid var(--border); border-radius: 6px; overflow: hidden; background: var(--surface); }
.kd-segb button { margin: 0; padding: 0.45rem 0.9rem; border: 0; border-right: 1px solid var(--border); border-radius: 0; background: var(--surface); color: var(--text); font: 500 0.9rem/1.3 var(--font); cursor: pointer; }
.kd-segb button:last-child { border-right: 0; }
.kd-segb button:hover { background: var(--bg); }
.kd-segb button[aria-pressed="true"] { background: var(--pt-accent); color: #fff; font-weight: 700; }
.kd-segb button:focus-visible { outline: 2px solid var(--pt-accent); outline-offset: -2px; }
.kd-modebar .kd-segb button { padding: 0.55rem 1.1rem; font-size: 0.95rem; }

.kd-ez-tip { display: flex; align-items: center; gap: 0.8rem; margin: 0 0 0.9rem; padding: 0.6rem 0.9rem; font-size: 0.9rem; background: var(--pt-accent-soft); border: 1px solid var(--pt-accent); border-radius: 6px; }
.kd-ez-tip[hidden], .kd-ez[hidden] { display: none; }
.kd-grow { flex: 1; }

.kd-ez { margin-bottom: 1rem; }
.kd-ez [hidden] { display: none !important; }
.kd-ez-line { font-size: 1.15rem; line-height: 2.9; color: var(--text); }
.kd-ez-line2 { font-size: 0.98rem; line-height: 2.4; color: var(--text-sub); }
.kd-nw { white-space: nowrap; }
/* 文の中で選んだ所：中央ぞろえ・太字・下線つきの面で目立たせる */
.kd-ez select, .kd-ez input[type="number"] {
  -webkit-appearance: none; appearance: none;
  display: inline-block; width: auto; max-width: 100%; margin: 0 0.2em; padding: 0.05em 1.45em 0.05em 1.1em;
  font: 800 inherit/1.45 var(--font); font-size: 1em; letter-spacing: 0.02em; color: var(--pt-accent);
  text-align: center; text-align-last: center; -moz-text-align-last: center;
  background-color: var(--pt-accent-soft); border: 0; border-bottom: 3px solid var(--pt-accent); border-radius: 6px 6px 0 0;
  vertical-align: baseline; cursor: pointer;
}
.kd-ez select {
  background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
  background-position: calc(100% - 0.8em) 58%, calc(100% - 0.5em) 58%;
  background-size: 0.3em 0.3em, 0.3em 0.3em; background-repeat: no-repeat;
}
.kd-ez select option { font-weight: 500; color: var(--text); background: var(--surface); }
.kd-ez input[type="number"] { width: 4.6rem; padding: 0.05em 0.5em; cursor: text; }
.kd-ez-line2 select, .kd-ez-line2 input { font-size: 0.95em; }
.kd-ez select:hover, .kd-ez input[type="number"]:hover { border-bottom-color: var(--text); }
.kd-ez select:focus-visible, .kd-ez input:focus-visible { outline: 2px solid var(--pt-accent); outline-offset: 2px; }

/* 段階的開示：ふだんは閉じておく */
.kd-ez-more { margin-top: 0.1rem; }
.kd-ez-more > summary { display: flex; align-items: baseline; gap: 0.6rem; padding: 0.25rem 0; list-style: none; cursor: pointer; font-size: 0.88rem; color: var(--text-sub); }
.kd-ez-more > summary::-webkit-details-marker { display: none; }
.kd-ez-more > summary::before { content: "＋"; color: var(--pt-accent); font-weight: 700; }
.kd-ez-more[open] > summary::before { content: "－"; }
.kd-ez-more > summary:focus-visible { outline: 2px solid var(--pt-accent); outline-offset: 2px; }
.kd-ez-more-st { color: var(--text); font-weight: 700; }
.kd-ez-more[open] > summary { margin-bottom: 0.1rem; }

.kd-ez-panel { margin-top: 0.7rem; padding: 0.8rem 0.9rem; border: 1px solid var(--border); border-radius: 6px; background: var(--bg); }
.kd-ez-panel h3 { margin: 0 0 0.5rem; font-size: 0.95rem; }
.kd-ez-panel textarea { width: 100%; min-height: 9rem; resize: vertical; font-family: inherit; line-height: 1.6; }
.kd-ez-row { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.4rem 0; }
.kd-ez-sub { font-size: 0.82rem; color: var(--text-sub); margin: 0.4rem 0; }
.kd-ez-status { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 1rem; margin-top: 0.7rem; font-size: 0.85rem; color: var(--text-sub); }
.kd-ez-warn { margin-top: 0.6rem; padding: 0.5rem 0.8rem; font-size: 0.88rem; color: var(--text); background: var(--pt-warn-soft); border: 1px solid var(--pt-warn); border-radius: 6px; }

.kd-chipb { margin: 0; padding: 0.4rem 0.8rem; font: 500 0.88rem/1.35 var(--font); color: var(--text); background: var(--surface); border: 1px solid var(--border); border-radius: 6px; cursor: pointer; text-align: left; }
.kd-chipb:hover:not(:disabled) { border-color: var(--pt-accent); }
.kd-chipb[aria-pressed="true"] { border-color: var(--pt-accent); background: var(--pt-accent-soft); color: var(--pt-accent); font-weight: 700; box-shadow: inset 0 0 0 1px var(--pt-accent); }
.kd-chipb[aria-pressed="true"]::before { content: "✓ "; }
.kd-chipb:disabled { opacity: 0.45; cursor: not-allowed; }
.kd-chipb:focus-visible { outline: 2px solid var(--pt-accent); outline-offset: 2px; }
.kd-linkbtn { margin: 0; padding: 0; border: 0; background: none; color: var(--pt-accent); font: inherit; text-decoration: underline; cursor: pointer; }

.kd-easy-side .card + .card { margin-top: 1rem; }
.kd-grp { margin: 0.9rem 0 0.35rem; font-size: 0.85rem; font-weight: 700; color: var(--text-sub); }
.kd-grp:first-of-type { margin-top: 0; }
.kd-chipcol { display: flex; flex-direction: column; align-items: flex-start; gap: 0.35rem; }
#kd-cards { display: block; }
.kd-easy-side + #kd-cards { margin-top: 1rem; }
.is-easy #kd-cards > .card + .card, .kd-side #kd-cards > .card + .card { margin-top: 1rem; }
.kd-easy-side .pt-actions { margin-top: 0.6rem; }

/* ───────── 問題の入力（ボタンで入力） ───────── */
.kd-ez-phead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; margin-bottom: 0.7rem; }
.kd-ez-phead h3 { margin: 0; }
.kd-ez-phead .kd-segb button { padding: 0.35rem 0.75rem; font-size: 0.84rem; }
.kd-ez-tools { align-items: center; gap: 0.3rem 0.7rem; margin-top: 0.9rem; }
.kd-ez-tools .kd-ez-sub { margin: 0; }
.kd-rows { display: flex; flex-direction: column; gap: 0.55rem; max-height: min(34rem, 70vh); overflow-y: auto; padding: 4px 2px; }
.kd-row { padding: 0.5rem 0.7rem 0.7rem; background: var(--surface); border: 1px solid var(--border); border-radius: 6px; }
.kd-rhead { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.4rem; }
.kd-rn { display: inline-flex; align-items: center; justify-content: center; min-width: 1.7rem; height: 1.7rem; padding: 0 0.3rem; font-size: 0.8rem; font-weight: 700; color: var(--text-sub); background: var(--bg); border: 1px solid var(--border); border-radius: 6px; cursor: grab; touch-action: none; user-select: none; }
.kd-rtag { font-size: 0.8rem; font-weight: 700; color: var(--pt-accent); }
.kd-racts { display: flex; gap: 0.25rem; margin-left: auto; }
.kd-ibtn { margin: 0; width: 2.1rem; height: 2.1rem; padding: 0; font: 600 0.9rem/1 var(--font); color: var(--text-sub); background: var(--surface); border: 1px solid var(--border); border-radius: 6px; cursor: pointer; }
.kd-ibtn:hover:not(:disabled) { border-color: var(--pt-accent); color: var(--pt-accent); }
.kd-ibtn:disabled { opacity: 0.35; cursor: not-allowed; }
.kd-ibtn:focus-visible, .kd-c:focus-visible, .kd-addb:focus-visible, .kd-linkbtn:focus-visible { outline: 2px solid var(--pt-accent); outline-offset: 2px; }
.kd-row input[type="text"] { width: 100%; margin: 0; }
.kd-rw { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; }
.kd-in-s { font-size: 1.05rem; }
.kd-rmemo { padding: 0.2rem 0; color: var(--text-sub); font-size: 0.9rem; word-break: break-all; }
.kd-row-c { background: var(--bg); }
.kd-rmsg { margin-top: 0.45rem; padding: 0.35rem 0.6rem; font-size: 0.82rem; color: var(--text); background: var(--pt-warn-soft); border: 1px solid var(--pt-warn); border-radius: 6px; }
.kd-row-c .kd-rmsg { padding: 0; background: none; border: 0; color: var(--text-sub); }
.kd-rmsg[hidden], .kd-spv[hidden], .kd-shint[hidden], .kd-sbar[hidden], .kd-rempty[hidden], .kd-ez-sub[hidden] { display: none; }
.kd-spv { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1.2rem 0; margin: 0.55rem 0 0.2rem; padding: 0.5rem 0.6rem 1.5rem; background: var(--bg); border: 1px solid var(--border); border-radius: 6px; }
.kd-c { margin: 0; min-width: 1.35em; padding: 0 0.06em; font: 500 1.35rem/1.9 var(--font); color: var(--text); background: none; border: 0; border-radius: 4px; cursor: pointer; }
.kd-c:hover { background: var(--pt-accent-soft); }
.kd-c.is-pend { background: var(--pt-warn-soft); box-shadow: inset 0 0 0 2px var(--pt-warn); }
.kd-mk { position: relative; display: inline-flex; margin: 0 0.3em; padding: 0 0.15em; background: var(--pt-accent-soft); border-bottom: 3px solid var(--pt-accent); border-radius: 6px 6px 0 0; }
.kd-c.is-m { font-weight: 800; color: var(--pt-accent); }
.kd-mkl { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); margin-top: 0.15rem; font-size: 0.72rem; font-weight: 700; line-height: 1.2; color: var(--pt-accent); pointer-events: none; }
.kd-shint { margin: 0.25rem 0; font-size: 0.82rem; color: var(--text-sub); }
.kd-sbar { margin: 0.15rem 0; font-size: 0.82rem; }
.kd-sread-h { margin: 0.5rem 0 0.2rem; font-size: 0.8rem; font-weight: 700; color: var(--text-sub); }
.kd-mrow { display: flex; align-items: center; gap: 0.5rem; margin: 0.3rem 0; }
.kd-mrl { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 1.6rem; height: 1.6rem; font-size: 0.8rem; font-weight: 700; color: #fff; background: var(--pt-accent); border-radius: 6px; }
.kd-mrw { flex: none; min-width: 2.5rem; font-size: 1.05rem; font-weight: 800; color: var(--pt-accent); }
.kd-mrow input { flex: 1 1 auto; min-width: 0; }
.kd-rempty { padding: 0.9rem; text-align: center; font-size: 0.9rem; color: var(--text-sub); background: var(--surface); border: 1px solid var(--border); border-radius: 6px; }
.kd-radd { display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; margin-top: 0.7rem; }
.kd-addb { display: flex; flex-direction: column; gap: 0.15rem; margin: 0; padding: 0.7rem 0.85rem; font: inherit; text-align: left; color: var(--pt-accent); background: var(--surface); border: 1px solid var(--pt-accent); border-radius: 6px; cursor: pointer; }
.kd-addb b { font-size: 0.98rem; }
.kd-addb span { font-size: 0.78rem; font-weight: 400; color: var(--text-sub); }
.kd-addb:hover:not(:disabled) { background: var(--pt-accent-soft); }
.kd-addb:disabled { opacity: 0.45; cursor: not-allowed; }
@media (max-width: 480px) { .kd-radd { grid-template-columns: 1fr; } }
@media (min-width: 640px) {
  .kd-row-w { display: grid; grid-template-columns: 1.7rem 2.6rem 1fr auto; align-items: center; column-gap: 0.5rem; padding: 0.45rem 0.7rem; }
  .kd-row-w .kd-rhead { display: contents; }
  .kd-row-w .kd-rn { grid-column: 1; grid-row: 1; }
  .kd-row-w .kd-rtag { grid-column: 2; grid-row: 1; }
  .kd-row-w .kd-rw { grid-column: 3; grid-row: 1; }
  .kd-row-w .kd-racts { grid-column: 4; grid-row: 1; margin-left: 0; }
  .kd-row-w .kd-rmsg { grid-column: 1 / -1; grid-row: 2; }
}

/* ───────── 簡単作成モード：もっと整える（開閉式） ───────── */
.kd-acc-lead { margin: 0 0 0.5rem; }
.kd-acc { border-bottom: 1px solid var(--border); }
.kd-acc-lead + .kd-acc { border-top: 1px solid var(--border); }
.kd-acc[hidden] { display: none; }
.kd-acc > summary { display: flex; align-items: center; gap: 0.6rem; padding: 0.7rem 0.2rem; list-style: none; cursor: pointer; font-size: 0.95rem; font-weight: 700; }
.kd-acc > summary::-webkit-details-marker { display: none; }
.kd-acc > summary::before { content: "▸"; flex: none; width: 1em; color: var(--pt-accent); }
.kd-acc[open] > summary::before { content: "▾"; }
.kd-acc > summary:focus-visible { outline: 2px solid var(--pt-accent); outline-offset: -2px; }
.kd-acc-t { flex: none; }
.kd-acc-st { flex: 1 1 auto; min-width: 0; overflow: hidden; text-align: right; text-overflow: ellipsis; white-space: nowrap; font-size: 0.8rem; font-weight: 500; color: var(--text-sub); }
.kd-acc-b { padding: 0.1rem 0.2rem 1rem 1.4rem; }
.kd-acc-b .kd-grp { margin-top: 0; }
.kd-chipb[hidden] { display: none; }

/* ───────── 簡単作成モード：追加分（元に戻す・並べ替え・各種設定） ───────── */
.kd-row.is-drag { opacity: 0.55; border-color: var(--pt-accent); }
.kd-row.is-over-before { box-shadow: 0 -3px 0 var(--pt-accent); }
.kd-row.is-over-after { box-shadow: 0 3px 0 var(--pt-accent); }
body.kd-dragging, body.kd-dragging .kd-rn { cursor: grabbing; user-select: none; }
.kd-toast { position: fixed; left: 0; right: 0; bottom: 1rem; z-index: 2200; display: flex; align-items: center; gap: 0.8rem; width: max-content; max-width: calc(100vw - 2rem); margin: 0 auto; padding: 0.6rem 0.8rem 0.6rem 1rem; font-size: 0.9rem; color: var(--surface); background: var(--text); border: 1px solid var(--border); border-radius: 6px; }
.kd-toast[hidden] { display: none; }
.kd-toast-t { min-width: 0; }
.kd-toast-u { flex: none; margin: 0; padding: 0.2rem 0.3rem; font: 700 0.9rem/1.3 var(--font); color: inherit; text-decoration: underline; background: none; border: 0; cursor: pointer; }
.kd-toast-x { flex: none; margin: 0; width: 1.8rem; height: 1.8rem; padding: 0; font: 600 0.9rem/1 var(--font); color: inherit; background: none; border: 1px solid currentColor; border-radius: 6px; cursor: pointer; opacity: 0.8; }
.kd-toast button:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.kd-segb-grid { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
.kd-segb-grid button { border-bottom: 1px solid var(--border); }
.kd-segb-grid button:nth-child(2n) { border-right: 0; }
.kd-segb-grid button:nth-last-child(-n+2) { border-bottom: 0; }
.kd-acc-b .kd-segb:not(.kd-segb-grid) { max-width: 100%; flex-wrap: wrap; }
.kd-actions [hidden] { display: none !important; }
@media (min-width: 861px) { .kd-narrow-only { display: none !important; } }
@media (max-width: 860px) { .kd-ez-tools .kd-ez-sub { display: none; } }
.kd-tbtn { width: auto; padding: 0 0.6rem; font-size: 0.8rem; white-space: nowrap; }
.kd-mrow .kd-tbtn { height: 2.1rem; }

.kd-rtag{white-space:nowrap}
@media (max-width:480px){.kd-mrow{flex-wrap:wrap}.kd-mrow input{flex:1 1 100%;order:5}.kd-mrw{flex:1 1 auto}}

.kd-fold { display: inline-flex; align-items: baseline; gap: 0.6rem; max-width: 100%; padding: 0.2rem 0; border: 0; background: none; font: inherit; font-size: 0.95rem; font-weight: 700; text-align: left; color: var(--text); cursor: pointer; }
.kd-fold::before { content: "▾"; flex: none; width: 1em; color: var(--pt-accent); }
.kd-fold[aria-expanded="false"]::before { content: "▸"; }
.kd-fold:focus-visible { outline: 2px solid var(--pt-accent); outline-offset: 2px; }
.kd-fold-s { font-size: 0.8rem; font-weight: 500; color: var(--text-sub); }
.kd-fold-s[hidden], #ez-manual-body[hidden] { display: none; }
.kd-ez-panel.is-folded .kd-ez-phead { margin-bottom: 0; }
