/* 唯一性定理のページの部品（2026-10-31）。色はサイトの変数だけを使うので、明るい画面でも暗い画面でも同じ形で出る。 */
.lab{margin:1.9em 0;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden;transition:border-color .25s}
.lab.done{border-color:var(--gold2)}
.lab-top{display:flex;align-items:baseline;gap:.7em;flex-wrap:wrap;padding:.85em 1.15em .35em}
.lab-no{font:700 .72rem var(--mono);letter-spacing:.14em;color:var(--gold);text-transform:uppercase}
.lab-name{font:600 1.02rem var(--serif);color:var(--ink)}
.lab-hint{font-size:.84rem;color:var(--ink3);padding:0 1.15em .55em;margin:0}
.lab-wrap{position:relative;padding:0 .5em}
.lab canvas{display:block;width:100%;touch-action:pan-y;-webkit-tap-highlight-color:transparent}
.lab-ctl{display:grid;grid-template-columns:minmax(0,1fr);gap:.45em;padding:.7em 1.15em .5em}
.lab-row{display:flex;flex-wrap:wrap;align-items:center;gap:.1em .8em;margin:0;font-size:.9rem;color:var(--ink2)}
.lab-row span{flex:0 1 auto}
@media (max-width:640px){.lab-row span{flex:1 1 100%}}
.lab-row input[type=range]{flex:1 1 auto;min-width:80px;height:30px;margin:0;accent-color:var(--accent);cursor:pointer}
.lab-row output{flex:0 0 3.4em;text-align:right;font:600 1rem var(--mono);color:var(--ink)}
.lab-btns{display:flex;flex-wrap:wrap;gap:.4em;padding:.15em 0}
.lab-btns button{padding:.32em .85em;border-radius:999px;border:1px solid var(--line2);background:var(--surface2);color:var(--ink2);font:500 .82rem var(--sans);cursor:pointer;line-height:1.5}
.lab-btns button:hover{border-color:var(--accent);color:var(--accent)}
.lab-btns button.on{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.lab-big{display:flex;align-items:baseline;gap:.7em;flex-wrap:wrap;padding:.1em 1.15em 0;font-size:.9rem;color:var(--ink2)}
.lab-big output{font:700 1.7rem var(--mono);color:var(--ink);letter-spacing:-.01em}
.lab.done .lab-big output{color:var(--gold)}
.lab-cells{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.5em 1em;padding:.2em 1.15em .4em;margin:0}
.lab-cells div{min-width:0}
.lab-cells dt{font-size:.74rem;color:var(--ink3);line-height:1.4}
.lab-cells dd{margin:0;font:600 .98rem var(--mono);color:var(--ink)}
.lab-read{margin:0;padding:.6em 1.15em .75em;border-top:1px dashed var(--line);font-size:.9rem;color:var(--ink2);min-height:2.9em;line-height:1.65}
.lab-read b{color:var(--ink);font-family:var(--mono)}
.lab-read .ok{color:var(--gold);font-weight:700}
.lab figcaption{padding:.1em 1.15em .95em;margin:0}
.lab noscript img{display:block;margin:0 auto}
.lab:not(.on) .lab-ctl,.lab:not(.on) .lab-read,.lab:not(.on) .lab-big,.lab:not(.on) .lab-cells,.lab:not(.on) .lab-hint{display:none}

.thm-box{margin:1.5em 0;padding:1em 1.25em;border-left:4px solid var(--gold);border-radius:0 10px 10px 0;background:var(--surface2)}
.thm-box .k{display:block;font:700 .74rem var(--mono);letter-spacing:.12em;color:var(--gold);margin-bottom:.35em}
.thm-box p{margin:0;font-family:var(--serif);font-size:1.04rem;line-height:1.95}
.keybox{margin:1.3em 0;padding:.9em 1.2em;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.keybox h2{margin:0 0 .4em;padding:0;font-size:1.05rem}
.keybox h2::before{display:none}
.keybox ul{margin:0;padding-left:1.25em}
.toc-chips{display:flex;flex-wrap:wrap;gap:.35em .5em;margin:1.2em 0;padding:0;list-style:none;font-size:.86rem}
.toc-chips li{margin:0}
.toc-chips a{display:block;padding:.2em .75em;border:1px solid var(--line2);border-radius:999px;color:var(--ink2);background:var(--surface);text-decoration:none}
.toc-chips a:hover{border-color:var(--accent);color:var(--accent)}
.chain{list-style:none;margin:1.4em 0;padding:0;display:grid;gap:.3em}
.chain li{position:relative;margin:0;padding:.55em 1em;border:1px solid var(--line);border-radius:9px;background:var(--surface);font-size:.94rem}
.chain li small{display:block;color:var(--gold);font:600 .74rem var(--mono);letter-spacing:.04em}
.chain li + li{margin-top:1.05em}
.chain li + li::before{content:"↓";position:absolute;left:50%;top:-1.3em;color:var(--ink3);font-size:.95rem;line-height:1.2}
.chain li.me{border-color:var(--gold2);background:var(--surface2)}
.nowrap{white-space:nowrap}
.entry .wide-table td,.entry .wide-table th{white-space:normal}
