/* 定理・定義ごとのページ（/t/）と LiteLayout。Starlight の色に寄せる（ダークが既定、data-theme で切り替え） */
:root {
  --lt-bg: #17181c; --lt-text: #dee2e8; --lt-strong: #fff; --lt-muted: #9ba2ad; --lt-line: #353841; --lt-box: #22252b;
  --lt-accent: #a8bdfa; --lt-c: #6fd39a; --lt-p: #e8b55a; --lt-s: #ef8f8f;
  --lt-font: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Hiragino Sans', 'Noto Sans JP', sans-serif;
  color-scheme: dark;
}
:root[data-theme='light'] {
  --lt-bg: #fff; --lt-text: #23262f; --lt-strong: #000; --lt-muted: #575b64; --lt-line: #d4d7dd; --lt-box: #f4f5f7;
  --lt-accent: #2a4bd0; --lt-c: #147a3f; --lt-p: #8a5a00; --lt-s: #b42323;
  color-scheme: light;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--lt-bg); color: var(--lt-text); font: 16px/1.8 var(--lt-font); overflow-wrap: anywhere; }
a { color: var(--lt-accent); }
.lt-head { border-bottom: 1px solid var(--lt-line); }
.lt-head nav { max-width: 50rem; margin: 0 auto; padding: 0.6rem 1rem; display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; align-items: baseline; font-size: 0.9rem; }
.lt-head a { color: var(--lt-text); text-decoration: none; }
.lt-head a:hover { color: var(--lt-accent); }
.lt-logo { font-weight: 700; font-size: 1.15rem; margin-inline-end: auto; color: var(--lt-strong) !important; }
.lt-main { max-width: 50rem; margin: 0 auto; padding: 1rem 1rem 2rem; }
.lt-foot { max-width: 50rem; margin: 0 auto; padding: 1rem; border-top: 1px solid var(--lt-line); font-size: 0.8rem; color: var(--lt-muted); }
.lt-foot a { color: var(--lt-muted); }

.it-crumb { margin: 0; font-size: 0.85rem; color: var(--lt-muted); }
.it-crumb a { color: var(--lt-muted); }
.it-h1 { margin: 0.3rem 0 0.2rem; font-size: clamp(1.4rem, 5vw, 2rem); line-height: 1.35; color: var(--lt-strong); }
.it-meta { margin: 0 0 1rem; color: var(--lt-muted); font-size: 0.9rem; }
.it-box { margin: 1rem 0; padding: 0.85rem 1.1rem; border-inline-start: 3px solid #a87cf0; border-radius: 0 6px 6px 0; background: var(--lt-box); }
.it-box.it-def { border-inline-start-color: #6aa6f8; }
.it-box > :first-child, .it-stmt > :first-child { margin-top: 0; }
.it-box > :last-child, .it-stmt > :last-child { margin-bottom: 0; }
.it-stmt .katex-display { overflow-x: auto; overflow-y: hidden; padding: 0.2rem 0; }
.it-stmt table { border-collapse: collapse; display: block; overflow-x: auto; }
.it-stmt th, .it-stmt td { border: 1px solid var(--lt-line); padding: 0.25rem 0.5rem; }
.it-go { margin: 0.6rem 0 0; font-size: 0.9rem; }
.it-gated { margin: 0; }
.lt-main h2 { font-size: 1.15rem; margin: 1.8rem 0 0.5rem; padding-bottom: 0.2rem; border-bottom: 1px solid var(--lt-line); color: var(--lt-strong); }
.lt-main h2 small { font-weight: 400; font-size: 0.8rem; color: var(--lt-muted); }
.it-note { font-size: 0.9rem; color: var(--lt-muted); margin: 0.3rem 0; }

/* 閉包の印 */
.mk { display: inline-block; min-width: 1.2em; text-align: center; font-weight: 700; font-size: 0.85em; }
.mk-c { color: var(--lt-c); } .mk-p { color: var(--lt-p); } .mk-s { color: var(--lt-s); }
.it-status { display: inline-block; padding: 0.05rem 0.6rem; border-radius: 999px; border: 1px solid currentColor; font-size: 0.85rem; font-weight: 600; }
.it-status.st-c { color: var(--lt-c); } .it-status.st-p { color: var(--lt-p); } .it-status.st-s { color: var(--lt-s); } .it-status.st-d { color: var(--lt-muted); }

/* 一覧・依存の木 */
.it-list, .tree { list-style: none; padding: 0; margin: 0.3rem 0; }
.it-list > li, .tree li { padding: 0.25rem 0; line-height: 1.6; }
.it-list > li { border-bottom: 1px solid var(--lt-line); }
.tree ul { list-style: none; margin: 0.15rem 0 0.15rem 0.45rem; padding-left: 0.9rem; border-left: 1px solid var(--lt-line); }
.tree details > summary { cursor: pointer; list-style: none; }
.tree details > summary::-webkit-details-marker { display: none; }
.tree details > summary::before { content: '▸'; display: inline-block; width: 1em; color: var(--lt-muted); transition: transform 0.1s; }
.tree details[open] > summary::before { transform: rotate(90deg); }
.tree .leaf::before { content: '・'; display: inline-block; width: 1em; color: var(--lt-muted); }
.sub { font-size: 0.8rem; color: var(--lt-muted); margin-inline-start: 0.35rem; }
.more { font-size: 0.8rem; color: var(--lt-muted); }
.chip { display: inline-block; font-size: 0.75rem; padding: 0 0.4em; border: 1px solid var(--lt-line); border-radius: 4px; color: var(--lt-muted); margin-inline-start: 0.3rem; }
.it-drills { display: flex; flex-wrap: wrap; gap: 0.4rem 0.8rem; list-style: none; padding: 0; }
@media print { .lt-head, .lt-foot { display: none; } .tree details > ul { display: block; } }
