@charset "UTF-8";
/*
 * TUTURIGACHI 2026 / 言語研究所
 * Copyright (C) 2026 Tuturigachi Language Solutions Corp. All Rights Reserved.
 * 回文検索 2026（韻検索 2012 の画面をもとに）
 */
.t-kaibun [hidden] { display: none !important; }
.t-kaibun .t-kaibun__wide { max-width: 460px; }
.t-kaibun__tabs button { min-width: 0; padding: 0 12px; }
.t-kaibun__tabs button[aria-selected="true"] {
  z-index: 1; cursor: default; font-weight: bold; color: var(--fukagawa-teal-800);
  background: #fff; border-bottom-color: #fff; box-shadow: inset 0 2px 0 var(--fukagawa-teal-700);
}
.t-kaibun__noscript { margin: 0; padding: 14px 22px; font-size: 12px; color: var(--sumi-sub); }
.t-kaibun__voicing {
  display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; margin: 0; padding: 9px 22px 8px;
  font-size: 12px; border: 0; border-bottom: 1px solid var(--jimu-gray-200); background: #fff;
}
.t-kaibun__voicing legend { float: left; margin: 0 4px 0 0; padding: 0; font-weight: bold; color: var(--fukagawa-teal-800); }
.t-kaibun__voicing label, .t-kaibun__radios label { display: inline-flex; align-items: center; gap: 4px; cursor: pointer; }
.t-kaibun__voicing small { font-size: 11px; color: var(--sumi-sub); }
.t-kaibun__voicing input, .t-kaibun__radios input { margin: 0; accent-color: var(--fukagawa-teal-700); }
.t-kaibun__radios { display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: 13px; }

.t-kaibun__mirror { margin: 4px 0 12px; }
.t-kaibun__line { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 4px; }
.t-kaibun__dir { flex: none; width: 6.4em; padding-top: 3px; font-size: 11px; color: var(--sumi-sub); }
.t-kaibun__cells { display: flex; flex-wrap: wrap; gap: 2px; min-width: 0; }
.t-kaibun__cell {
  min-width: 22px; height: 24px; padding: 0 2px; box-sizing: border-box; text-align: center;
  font: 14px/22px var(--font-agency-ja); color: var(--sumi);
  background: linear-gradient(#fff, oklch(0.96 0.004 210)); border: 1px solid var(--jimu-gray-300); border-radius: 2px;
}
.t-kaibun__cell.is-mid { border-color: var(--kusumi-gold-600); box-shadow: inset 0 -2px 0 var(--kusumi-gold-300); }
.t-kaibun__cell.is-off { color: var(--notice-red); border-color: oklch(0.72 0.12 25); background: oklch(0.97 0.02 25); font-weight: bold; }
.t-kaibun__verdict { display: inline-block; margin: 0 8px 0 0; padding: 1px 10px; font-size: 13px; font-weight: bold; line-height: 22px; color: #fff; border-radius: 2px; background: linear-gradient(var(--fukagawa-teal-500), var(--fukagawa-teal-700)); }
.t-kaibun__verdict.is-no { color: var(--sumi); background: linear-gradient(#fff, oklch(0.92 0.006 210)); border: 1px solid var(--jimu-gray-300); }
.t-kaibun__reverse { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 10px 0 0; padding: 10px 12px; background: var(--shironezumi-50); border: 1px solid var(--jimu-gray-200); }
.t-kaibun__reverse dt { font-size: 11px; color: var(--sumi-sub); }
.t-kaibun__reverse dd { flex: 1 1 12em; margin: 0; font-size: 17px; letter-spacing: 0.06em; overflow-wrap: anywhere; color: var(--fukagawa-teal-800); }
.t-kaibun__folds { margin: 14px 0 0; }
.t-kaibun__folds h3, .t-kaibun__sub { position: relative; margin: 14px 0 4px; padding: 0 0 4px 14px; font-size: 13px; color: var(--fukagawa-teal-700); border-bottom: 1px dotted var(--jimu-gray-500); }
.t-kaibun__folds h3::before, .t-kaibun__sub::before { content: ""; position: absolute; left: 0; top: 6px; width: 7px; height: 7px; background: var(--kusumi-gold-600); }
.t-kaibun__n { margin: 12px 0 0; padding: 10px 14px; font-size: 12.5px; line-height: 1.85; background: oklch(0.985 0.012 90); border: 1px solid var(--kusumi-gold-300); border-radius: 2px; }
.t-kaibun__refuse { margin: 0; padding: 12px 14px; font-size: 13px; line-height: 1.8; background: #fff; border: 1px solid var(--jimu-gray-300); border-radius: 2px; }
.t-kaibun .t-rhyme__list.is-one { grid-template-columns: minmax(0, 1fr); }
.t-kaibun__parts { display: block; margin-top: 1px; font-size: 11px; color: var(--sumi-sub); }
.t-kaibun__parts i { font-style: normal; color: var(--kusumi-gold-700); }
.t-kaibun__alts { display: block; font-size: 10.5px; color: var(--sumi-sub); }
.t-kaibun .t-rhyme__item .t-rhyme__word b { background: none; color: var(--fukagawa-teal-800); }
.t-kaibun__gloss { margin: -4px 0 10px; font-size: 12px; color: var(--sumi-sub); }

/* よく知られた回文: a shelf of cards, each with its source */
.t-kaibun__panel--classics { padding: 4px 22px 18px; }
.t-kaibun__classhead { margin: 14px 0 8px; font-size: 14px; color: var(--fukagawa-teal-800); }
.t-kaibun__classics { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--jimu-gray-200); }
.t-kaibun__classic { padding: 12px 4px 10px; border-bottom: 1px dotted var(--jimu-gray-300); }
.t-kaibun__kana { margin: 0; font-size: 16px; line-height: 1.6; letter-spacing: 0.06em; color: var(--sumi); }
.t-kaibun__text { margin: 1px 0 0; font-size: 12px; color: var(--sumi-sub); }
.t-kaibun__source { margin: 6px 0 0; font-size: 12px; line-height: 1.7; }
.t-kaibun__srclabel { display: inline-block; margin-right: 8px; padding: 0 6px; font-size: 10px; line-height: 16px; color: var(--fukagawa-teal-800); border: 1px solid var(--fukagawa-teal-300); border-radius: 2px; background: var(--fukagawa-teal-100); }
.t-kaibun__note { margin: 3px 0 0; font-size: 11.5px; line-height: 1.75; color: var(--sumi-sub); }
.t-kaibun__mark { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin: 6px 0 0; font-size: 10.5px; color: var(--fukagawa-teal-700); }

@media (max-width: 760px) {
  .t-fluid .t-kaibun__tabs { flex-wrap: wrap; row-gap: 3px; }
  .t-fluid .t-kaibun__tabs button { flex: 1 0 30%; height: 38px; padding: 0 4px; font-size: 12.5px; }
  .t-fluid .t-kaibun__voicing { padding: 10px 14px; }
  .t-fluid .t-kaibun__voicing label { min-height: 32px; }
  .t-fluid .t-kaibun__radios label { min-height: 36px; }
  .t-fluid .t-kaibun__panel--classics { padding: 4px 14px 16px; }
  .t-fluid .t-kaibun__line { flex-direction: column; gap: 2px; }
  .t-fluid .t-kaibun__cell { min-width: 24px; height: 28px; font-size: 15px; line-height: 26px; }
  .t-fluid .t-kaibun__noscript { padding: 12px 14px; }
}
