.tl-lab{scroll-margin-top:84px;margin:30px 0;border:1.4px solid var(--line);border-radius:18px;background:var(--cream);overflow:hidden}.tl-head{padding:22px 22px 8px}.tl-eye{font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--coral)}.prose .tl-head h2,.tl-head h2{margin:8px 0;font-family:var(--font-display);font-size:clamp(24px,4vw,31px);line-height:1.12;letter-spacing:-.02em}.prose .tl-sub,.tl-sub{margin:0;font-size:15px;color:var(--ink-soft)}.tl-steps{display:flex;gap:4px;list-style:none;margin:14px 0 0;padding:0 22px;flex-wrap:wrap}.prose .tl-steps li,.tl-steps li{margin:0;padding:6px 10px;border-radius:99px;font-family:var(--font-mono);font-size:12px;color:var(--ink-soft);background:var(--paper)}.tl-steps li::marker{content:""}.tl-steps li span{font-weight:700}.tl-steps li.on{background:var(--ink);color:#fff}.tl-steps li.done{background:#dff3ea;color:#0b6b52}.tl-panel{padding:18px 22px 22px}.prose .tl-panel h3,.tl-panel h3{margin:0 0 8px;font-family:var(--font-display);font-size:20px}.prose .tl-panel h4,.tl-panel h4{margin:18px 0 8px;font-size:15px;font-family:var(--font-body);font-weight:700}.prose .tl-panel p,.tl-panel p{margin:0 0 12px;font-size:15px;line-height:1.55}.tl-btn{font:600 14px/1.3 var(--font-body);min-height:44px;padding:9px 14px;border-radius:10px;border:1.2px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;text-align:left}.tl-btn:hover:not([disabled]){border-color:var(--coral)}.tl-btn:focus-visible,.tl-input:focus-visible{outline:2px solid var(--coral);outline-offset:2px}.tl-btn[disabled]{opacity:.45;cursor:not-allowed}.tl-btn.tl-pri{background:var(--coral);border-color:var(--coral);color:#fff}.tl-btn.tl-pri:hover:not([disabled]){background:var(--coral-deep)}.tl-btn.tl-code{font-family:var(--font-mono);font-size:12.5px;font-weight:500;overflow-wrap:anywhere}.tl-btn.on{background:var(--ink);border-color:var(--ink);color:#fff}.tl-row,.tl-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.tl-opts{display:grid;gap:8px;margin:0 0 12px}.tl-nav{justify-content:space-between;margin:16px 0 0}.tl-nav .tl-pri:only-child{margin-left:auto}.tl-field{display:block;margin:0 0 12px;font-size:14px;font-weight:600}.tl-field span{display:block;margin-bottom:5px}.tl-input{display:block;width:100%;box-sizing:border-box;padding:10px 12px;border:1.2px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);font:14px/1.45 var(--font-mono);resize:vertical}.tl-term{margin:0 0 12px;padding:13px 15px;border-radius:11px;background:#141210;color:#e7dfd1;font:12.5px/1.6 var(--font-mono);overflow-x:auto;white-space:pre-wrap;overflow-wrap:anywhere}.prose .tl-res,.tl-res{display:inline-block;margin:12px 0;padding:6px 12px;border-radius:8px;font-family:var(--font-mono);font-size:13px;font-weight:700}.tl-res.pass{background:#dff3ea;color:#0b6b52}.tl-res.fail{background:#fdeae5;color:var(--coral-deep)}.prose .tl-note,.tl-note{padding:10px 13px;border-left:3px solid var(--line);background:var(--paper);border-radius:0 9px 9px 0;font-size:14px}.tl-note.good{border-color:#0f9f82;background:#e8f7f1}.tl-note.warn{border-color:var(--gold);background:#fdf6df}.tl-note.bad{border-color:var(--coral);background:#fdeae5}.tl-quiz{margin:0 0 12px;padding:12px 14px;border:1.2px solid var(--line);border-radius:11px}.tl-quiz legend{padding:0 6px;font-weight:700;font-size:14px}.tl-quiz label{display:flex;gap:9px;align-items:flex-start;min-height:32px;padding:4px 0;font-size:14px;overflow-wrap:anywhere}.tl-quiz input{margin-top:3px;flex:0 0 auto}.tl-quiz .tl-btn{margin-top:8px}.tl-tablewrap{overflow-x:auto;margin:12px 0}.tl-table{width:100%;border-collapse:collapse;font-size:13px}.tl-table th,.tl-table td{padding:7px 9px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.tl-table thead th{font-size:12px;color:var(--ink-soft)}.tl-table tbody th{font-weight:500}.tl-table .ok{color:#0b6b52;font-weight:600}.tl-table .no{color:var(--coral-deep);font-weight:700}@media(max-width:560px){.tl-head,.tl-panel{padding-left:16px;padding-right:16px}.tl-steps{padding:0 16px}.tl-row .tl-btn,.tl-nav .tl-btn{width:100%}}
