/* ja-almanac pack — 目盛と遊標（07）の日文暦注页样式。令牌全部来自 styles/tokens.css。 */

.ink2 { color: var(--kd-ink-2); }
.eyebrow { font: 500 12.5px/1.4 var(--ja-sans); letter-spacing: .06em; color: var(--kd-ink-2); }
.crumb { font-size: 12.5px; color: var(--kd-ink-2); display: flex; flex-wrap: wrap; gap: 8px; padding-top: 22px; }
.crumb a { color: var(--kd-ink-2) !important; text-decoration: none; }
.crumb a:hover { color: var(--kd-ai) !important; text-decoration: underline; }
.jr-head { padding-top: 18px; }
.jr-head .lead { max-width: 44em; }
.jr-hero { padding-top: 40px; }
.jr-h2 { margin-bottom: 18px; }
.jr-h3 { margin: 28px 0 10px; }
.jr-note { font-size: 13px; color: var(--kd-ink-2); margin-top: 12px; }
.jr-hint { font-size: 12px; color: var(--kd-ink-2); margin-top: 8px; line-height: 1.6; }
.prose p + p { margin-top: 1em; }

/* 示例标记（六曜は示例） */
.ex {
  display: inline-block; font: 500 10px/1 var(--inter) !important; letter-spacing: .02em; color: var(--kd-ink-2) !important;
  border: 1px dashed var(--kd-line-strong); padding: 2px 4px; margin-left: 6px; vertical-align: 2px; white-space: nowrap; font-weight: 500;
}

/* ---------------- 尺 figure ---------------- */
.jr { position: relative; margin-top: 36px; }
.jr .inst-hd { flex-wrap: wrap; }
.jr-cap { padding: 8px 0 0 !important; }
.jr-box { position: relative; }
.jr-svg { display: block; width: 100%; height: auto; overflow: visible; touch-action: pan-y; -webkit-user-select: none; user-select: none; }
.jr-svg text { font-family: var(--inter); font-feature-settings: "tnum" 1; }
.jr-svg .lbl-min, .jr-ring .lbl-min { font-family: var(--mincho); }
.jr-svg:focus-visible { outline: 2px solid var(--kd-ai); outline-offset: 4px; }
.jr[data-jr="year"] .jr-svg, .jr[data-jr="cells"] .jr-svg, .jr[data-jr="range"] .jr-svg, .jr[data-jr="month"] .jr-svg { cursor: pointer; }
.jr-svg.zoomed { overflow: hidden; }
.jr-svg .lbl-m { cursor: zoom-in; }
.jr-svg.zoomed .lbl-m { cursor: default; }
.jr-cur, .jr-hov { will-change: transform; }
.jr-cur.anim { transition: transform var(--jr-dur, 240ms) var(--kd-ease-cursor); }
.m-bar { fill: var(--kd-ink-2); }
.m-ctx { fill: var(--kd-ink-2); }
.jr-d { display: block; }
.jr-m { display: none; }

.jr > .figcap, .jr-zbar { max-width: var(--content-max); margin-left: auto; margin-right: auto; }
html:not(.jr-js) .jr-zbar { display: none !important; }
.jr-zbar { display: flex; align-items: center; gap: 12px; min-height: 36px; margin: -4px 0 6px; font-size: 12.5px; color: var(--kd-ink-2); }
.jr-zbar .btn { height: 32px; padding: 0 14px; font-size: 13px; }

/* 首访载入：只画一次，刻度由左向右展开（07 §7.3） */
.jr-load .jr-static { clip-path: inset(0 100% 0 0); animation: jr-wipe 600ms var(--kd-ease-cursor) forwards; }
@keyframes jr-wipe { to { clip-path: inset(0 0 0 0); } }

/* ---------------- テープ（手机） ---------------- */
.jr-tape { display: none; }
.mtabs.jr-mtabs { display: none; }

@media (max-width: 767px) {
  .jr { margin-top: 24px; }
  .jr .inst-hd { padding: 0 16px 10px; }
  .jr-cap { padding: 6px 0 0 !important; }
  .jr > .figcap { padding: 8px 16px 0; }
  .jr-zbar { display: none; }
  html.jr-js .jr[data-jr="year"] .jr-box { display: none; }
  html:not(.jr-js) .jr-tape, html:not(.jr-js) .mtabs.jr-mtabs { display: none; }
  .jr-d { display: none; }
  .jr-m { display: block; }
  .jr-box { padding: 0 16px; }
  html.jr-js .mtabs.jr-mtabs { display: flex; }
  html.jr-js .jr-tape { display: block; position: relative; }
  .jr-tape-sc {
    overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
    scrollbar-width: none; overscroll-behavior-x: contain; padding-top: 6px;
  }
  .jr-tape-sc::-webkit-scrollbar { display: none; }
  .jr-tape-track { display: flex; width: max-content; padding: 0 calc(50% - 4px); }
  .jr-tape-track > i { flex: none; width: 8px; height: 112px; scroll-snap-align: center; position: relative; }
  .jr-tape-track > i:first-child > svg { position: absolute; left: 0; top: 0; overflow: visible; }
  .jr-tape-cur { position: absolute; left: 50%; top: 0; bottom: 0; width: 0; pointer-events: none; }
  .jr-tape-line { position: absolute; left: -1px; top: 20px; bottom: 0; width: 2px; background: var(--kd-cursor); }
  .jr-tape-flag {
    position: absolute; top: 0; left: 0; transform: translateX(-50%); white-space: nowrap; height: 20px; line-height: 20px; padding: 0 8px;
    background: var(--kd-cursor); color: var(--kd-on-ai); font: 500 12px/20px var(--inter) !important;
  }
}

/* ---------------- Drawer ---------------- */
.jr-drawer { margin-top: -1px; }
.jr-drawer + .jr-drawer { margin-top: 24px; }
.why .chev::before { content: "+"; }
.why[open] .chev::before { content: "\2212"; }
.why .ledgers { margin: 6px 0 22px; }
.ledgers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; }
.ledger-ttl { font-size: 12.5px; color: var(--kd-ink-2); margin: 6px 0 8px; display: flex; gap: 8px; align-items: center; }
.kd-ledger .mr svg.mini { max-width: 100%; height: auto; }
.jr-cta .cta-line b { display: block; }
.cta-alt { grid-column: 1 / -1; font-size: 12px; color: var(--kd-ink-2); margin-top: 8px; line-height: 1.6; }
.d-links { flex-wrap: wrap; gap: 8px 22px; }
.jr-mech { margin-top: 22px; }

@media (max-width: 767px) {
  .ledgers { grid-template-columns: 1fr; gap: 20px; }
  .why-sum { flex-wrap: wrap; }
  .why-sum .eq { flex-basis: 100%; margin-left: 22px; }
  .d-kv, .d-why { margin-top: 20px; }
}

/* ---------------- 表 ---------------- */
.tbl-wrap { width: 100%; overflow-x: auto; }
.tbl td.n { text-align: left; }
.tbl td.num, .tbl th.num { text-align: right; }
.tbl .tg { display: inline-flex; align-items: center; gap: 6px; margin-right: 12px; font-size: 13px; }
.tbl tr.we td:first-child { font-weight: 600; }
.tbl th[scope="row"] { color: var(--kd-ink); font-size: 14px; font-weight: 500; background: transparent; border-bottom: 1px solid var(--kd-line); }
.jr-rows tbody tr[data-key] { cursor: pointer; }
.jr-rows tbody tr[data-key]:hover td { background: var(--kd-ai-tint); }
.jr-narrow { max-width: 560px; }
.jr-month { margin-top: 36px; scroll-margin-top: 16px; }
.jr-month:first-of-type { margin-top: 8px; }
.jr-mjump { display: flex; flex-wrap: wrap; gap: 6px 4px; margin-bottom: 8px; }
.jr-mjump a { display: inline-flex; align-items: baseline; gap: 4px; padding: 6px 10px; border: 1px solid var(--kd-line); text-decoration: none; color: var(--kd-ink) !important; font-size: 13.5px; background: var(--kd-surface); }
.jr-mjump a small { color: var(--kd-ink-2); font-size: 11.5px; }
.jr-mjump a:hover { border-color: var(--kd-ai); }
tr[id^="d-"], tr[id^="r-"], tr[id^="k-"] { scroll-margin-top: 80px; }

@media (max-width: 767px) {
  .tbl { font-size: 13.5px; }
  .tbl td, .tbl th { padding: 9px 8px; }
  .tbl .c-sm { display: none; }
  .tbl-wrap { margin: 0 -16px; width: calc(100% + 32px); }
  .tbl caption { padding-left: 16px; padding-right: 16px; }
  .tbl td:first-child, .tbl th:first-child { padding-left: 16px; }
  .tbl .tg { margin-right: 6px; }
}

/* ---------------- 早見表 Grid（解说页首屏） ---------------- */
.jr-inst { padding-top: 28px; }
.xg { width: 100%; border-collapse: collapse; background: var(--kd-surface); font-size: 13px; }
.xg caption { text-align: left; font-size: 13.5px; color: var(--kd-ink-2); padding: 0 0 12px; line-height: 1.7; }
.xg thead th { font: 500 15px/1 var(--mincho); padding: 10px 0; border-bottom: 1.5px solid var(--kd-line-strong); background: var(--kd-bg); text-align: center; }
.xg thead th.xg-c { font: 500 11.5px/1.2 var(--ja-sans); color: var(--kd-ink-2); text-align: left; padding-left: 12px; }
.xg tbody th { text-align: left; font-weight: 400; padding: 7px 12px; border-right: 1.5px solid var(--kd-line-strong); border-bottom: 1px solid var(--kd-line); white-space: nowrap; background: var(--kd-bg); }
.xg tbody th b { font: 500 16px/1 var(--mincho); margin-right: 2px; }
.xg .xg-t { display: block; font-size: 11px; color: var(--kd-ink-2); margin-top: 2px; }
.xg td { border: 1px solid var(--kd-line); text-align: center; height: 40px; min-width: 34px; }
.xg td .mk { vertical-align: middle; }
.xg tr.hr th, .xg td.hr { background: var(--kd-ai-tint); }
.xg th.hc, .xg td.hc { background: var(--kd-ai-tint); }
.xg td.hx { outline: 2px solid var(--kd-ai); outline-offset: -2px; }
.xg-ts td { text-align: left; padding: 8px 12px; height: auto; }
.xg-ts td.xg-gz { font-size: 17px; }
.xg-ts .xg-rule svg { display: block; max-width: 100%; height: auto; }
.xg-ts thead th { font: 500 12px/1.2 var(--ja-sans); color: var(--kd-ink-2); text-align: left; padding: 10px 12px; }

@media (max-width: 767px) {
  .xg { font-size: 12px; }
  .xg tbody th { padding: 6px 8px; }
  .xg .xg-t { display: none; }
  .xg thead th { font-size: 13px; padding: 8px 0; }
  .xg td { min-width: 22px; height: 34px; }
  .xg-ts td { padding: 8px; }
  .xg .c-sm { display: none; }
  .jr-inst .tbl-wrap { margin: 0; width: 100%; }
}

.jr-ringfig { margin: 0 0 24px; }
.jr-ring { display: block; width: 100%; max-width: 960px; height: auto; overflow: visible; }
.jr-ring text { font-feature-settings: "tnum" 1; }
.jr-ring .jr-ring-t { font-size: 17px; fill: var(--kd-ink); }
.jr-ring .flag-t { font: 500 12px var(--inter); }

/* ---------------- 链接列表、FAQ、出典 ---------------- */
.jr-links li { grid-template-columns: 1fr; }
.faq { border-top: 1.5px solid var(--kd-ink); }
.faq details { border-bottom: 1px solid var(--kd-line); }
.faq summary { cursor: pointer; padding: 14px 0; font-weight: 500; list-style: none; display: flex; gap: 10px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::before { content: "+"; font-family: var(--inter); color: var(--kd-ink-2); width: 12px; flex: none; }
.faq details[open] summary::before { content: "\2212"; }
.faq .prose { padding: 0 0 16px 22px; font-size: 15px; }
.jr-method .prose { font-size: 14.5px; }
.src { list-style: none; border-top: 1px solid var(--kd-line); font-size: 13.5px; }
.src li { padding: 10px 0; border-bottom: 1px solid var(--kd-line); color: var(--kd-ink-2); }
.src a { margin-left: 8px; word-break: break-all; }
code { font: 500 12px var(--inter); color: var(--kd-ai); background: var(--kd-ai-tint); padding: 1px 5px; }
.jr-guide b { font-weight: 600; }

/* ---------------- 重なる日 ---------------- */
.ks-row { padding: 18px 0 14px; border-top: 1px solid var(--kd-line); }
.ks-row:last-child { border-bottom: 1px solid var(--kd-line); }
.ks-hd { display: flex; align-items: baseline; gap: 18px; margin-bottom: 6px; }
.ks-hd > b { font: 500 24px/1 var(--inter); letter-spacing: -.01em; }
.ks-n { font-size: 14px; color: var(--kd-ink-2); }
.ks-n .n { font: 600 24px/1 var(--inter); color: var(--kd-ink); margin-right: 2px; }
.ks-dates { margin-left: auto; display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 13.5px; }
.ks-dates a { text-decoration: none; padding: 2px 0; border-bottom: 1.5px solid transparent; color: var(--kd-ink) !important; }
.ks-dates a.on, .ks-dates a:hover { border-bottom-color: var(--kd-ai); color: var(--kd-ai) !important; }
.jr-ks-fig .jr-svg { cursor: pointer; }

@media (max-width: 767px) {
  .ks-row { padding: 16px 16px 10px; }
  .ks-hd { flex-wrap: wrap; gap: 4px 14px; }
  .ks-dates { margin-left: 0; flex-basis: 100%; gap: 4px 14px; font-size: 13px; }
}

/* ---------------- 吉日カレンダー ---------------- */
.kj-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px; align-items: start; margin-top: 0; }
.kj-main .drawer-in { grid-template-columns: repeat(8, minmax(0, 1fr)); padding-left: 0; padding-right: 0; }
.kj-main .d-date, .kj-main .d-kv { grid-column: span 4; }
.kj-main .d-why { grid-column: 1 / -1; }
.jr-klist { margin-top: 36px; }
.flt { background: var(--kd-surface); border-top: 1.5px solid var(--kd-ink); }
.flt-g { padding: 16px 20px; border-bottom: 1px solid var(--kd-line); }
.flt-h { font-size: 12.5px; font-weight: 500; color: var(--kd-ink-2); margin-bottom: 10px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chips + .chips { margin-top: 10px; }
.chip {
  display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 0 12px; border: 1px solid var(--kd-line-strong);
  font: 400 13.5px/1 var(--ja-sans); color: var(--kd-ink); background: var(--kd-surface); cursor: pointer; position: relative;
}
.chip input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.chip:has(input:checked), .chip.on { background: var(--kd-ai); border-color: var(--kd-ai); color: var(--kd-on-ai); }
.chip:has(input:checked) .m-mb, .chip:has(input:checked) .m-ta { fill: var(--kd-on-ai); }
.chip:has(input:checked) .m-ts, .chip:has(input:checked) .m-gz { stroke: var(--kd-on-ai); }
.chip:has(input:focus-visible) { outline: 2px solid var(--kd-ai); outline-offset: 2px; }
.inp { height: 40px; border: 1px solid var(--kd-line-strong); padding: 0 10px; font-size: 14px; background: var(--kd-surface); color: var(--kd-ink); min-width: 0; }
.fx-row { display: flex; align-items: center; gap: 8px; }
.fx-row .inp { flex: 1; }
.jr-presets { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.jr-presets p { font-size: 12px; color: var(--kd-ink-2); line-height: 1.6; margin-top: 6px; }
.flt-act { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; border-bottom: 0; }
.flt-act .btn { height: 40px; font-size: 13.5px; padding: 0 14px; }
.jr-copied { font-size: 12.5px; color: var(--kd-tokiwa); }
.flt-bar {
  display: none; width: 100%; align-items: center; justify-content: space-between; height: 52px; padding: 0 16px; margin-top: 20px;
  border: 0; border-top: 1.5px solid var(--kd-ink); border-bottom: 1px solid var(--kd-line); background: var(--kd-surface);
  font: 500 14.5px var(--ja-sans); color: var(--kd-ink); cursor: pointer; text-align: left;
}
.flt-bar span { font-size: 13px; color: var(--kd-ink-2); font-weight: 400; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin-left: 12px; }
html.jr-js .jr-apply { display: none; }

@media (max-width: 767px) {
  .kj-grid { grid-template-columns: minmax(0, 1fr); gap: 0; padding: 0; }
  .kj-side { order: -1; }
  .kj-main .drawer-in { display: block; padding: 22px 16px 0; }
  .jr-klist { margin-top: 28px; padding: 0 16px; }
  .flt-bar { display: flex; }
  html.jr-js .flt:not(.open) { display: none; }
  .flt-g { padding: 14px 16px; }
}

/* ---------------- 暦注カレンダー ---------------- */
.jr-mnav { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding-top: 28px; }
.jr-mnav .btn { height: 38px; padding: 0 14px; font-size: 13.5px; }
.jr-mtitle { min-width: 7.5em; text-align: center; }
.jr-mpick .inp { height: 38px; }
.jr-views { margin-left: auto; display: inline-flex; gap: 6px; }
html.jr-js .jr-mgo { display: none; }
.jr-cal { margin-top: 24px; }
.mg { width: 100%; border-collapse: collapse; table-layout: fixed; background: var(--kd-surface); }
.mg caption { text-align: left; font: 600 17px/1.4 var(--mincho); padding: 0 0 12px; letter-spacing: .03em; }
.mg th { font-size: 12px; font-weight: 500; color: var(--kd-ink-2); padding: 8px 10px; border-bottom: 1.5px solid var(--kd-line-strong); background: var(--kd-bg); text-align: left; }
.mg td { border: 1px solid var(--kd-line); vertical-align: top; height: 84px; padding: 0; }
.mg td.we, .mg th.we { background: var(--kd-surface-2); }
.mg-b { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; width: 100%; height: 100%; min-height: 84px; padding: 8px 10px; border: 0; background: transparent; cursor: pointer; text-align: left; color: var(--kd-ink); font: inherit; }
.mg-n { font: 500 18px/1 var(--inter) !important; }
.mg-r { font-size: 12px; color: var(--kd-ink-2); line-height: 1.2; }
.mg-m { display: flex; gap: 3px; min-height: 9px; }
.mg td.sel { outline: 2px solid var(--kd-ai); outline-offset: -2px; background: var(--kd-ai-tint); }
.mg td.td .mg-n { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.mg td:hover { background: var(--kd-ai-tint); }

@media (max-width: 767px) {
  .jr-mnav { padding-top: 18px; }
  .jr-mtitle { order: -1; flex-basis: 100%; text-align: left; min-width: 0; }
  .jr-views { margin-left: 0; }
  .mg td { height: 60px; }
  .mg-b { min-height: 60px; padding: 6px 4px; gap: 3px; }
  .mg-n { font-size: 15px !important; }
  .mg-r { font-size: 10px; }
  .mg th { padding: 6px 4px; }
}

/* ---------------- 印刷 ---------------- */
@media print {
  .jr-tape, .mtabs, .jr-zbar, .jr-drawer .cta-row, .flt, .flt-bar, .jr-mnav .btn, .jr-views { display: none !important; }
  .jr[data-jr="year"] .jr-box { display: block !important; }
  .tbl-wrap { overflow: visible; }
}

main [hidden] { display: none !important; }
.cta-row.jr-noapp .cta-alt { color: var(--kd-ink); }
.chip .mk { margin-right: 6px; vertical-align: -1px; }

/* Basis rows: plain reading, then where the rule comes from */
.jr-src { display: block; margin-top: 3px; font-size: 12px; line-height: 1.5; color: var(--kd-ink-2); }
.jr-rules { padding: 12px 0 4px; font-size: 12px; color: var(--kd-ink-2); }
