.lab-nav{display:flex;gap:10px;flex-wrap:wrap;margin:28px 0 0}.lab-nav a{padding:9px 15px;border:1px solid var(--dark-border);border-radius:12px;text-decoration:none;color:var(--ct-d8e7f4);background:var(--cf-101b29)}.lab-nav a:hover{border-color:var(--tech-green);transform:translateY(-2px)}
.lab-section{margin:36px 0;scroll-margin-top:130px}.lab-section>h2{font-size:clamp(1.6rem,3vw,2.25rem);letter-spacing:-.03em}.lab-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:22px;align-items:start}.lab-card{min-width:0;padding:26px;border:1px solid var(--cr-2a3b4b);border-radius:24px;background:linear-gradient(140deg,var(--cf-112330),var(--cf-111721) 70%)}.lab-card h2,.lab-card h3{margin:0 0 12px}.lab-card p{color:var(--ct-bdc9d8)}.lab-card p:last-child{margin-bottom:0}.lab-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}.lab-fields label{display:flex;flex-direction:column;gap:7px;font-weight:700}.lab-fields input,.lab-fields select{width:100%;min-height:48px;border:1px solid var(--cr-526578);border-radius:10px;background:var(--cf-08111c);color:var(--ct-f3f6fb);padding:10px 12px;font:inherit}.lab-fields small{font-weight:400;color:var(--ct-bbc9d6)}.lab-span{grid-column:1/-1}.lab-buttons{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.lab-button{min-height:44px;padding:10px 17px;border:1px solid var(--cr-577181);border-radius:12px;background:var(--cf-183345);color:var(--ct-f4faff);font:inherit;font-weight:700;cursor:pointer}.lab-button:hover{border-color:var(--cr-45e6c5);background:var(--cf-1b4652)}.lab-button[aria-pressed=true]{background:var(--cf-07584b);border-color:var(--cr-65f5d4);color:var(--ct-ffffff)}.lab-button:disabled{opacity:.5;cursor:not-allowed}.lab-primary{background:var(--cf-0a6058);border-color:var(--cr-2dd4b5)}.lab-result{padding:18px;border:1px solid var(--cr-2e6571);border-radius:14px;background:var(--cf-071921);margin:18px 0;overflow-wrap:anywhere}.lab-result strong{color:var(--ct-63e8d1)}.lab-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lab-stat{min-width:0;background:var(--cf-09131e);border:1px solid var(--cr-314453);border-radius:12px;padding:14px}.lab-stat small{display:block;color:var(--ct-b7c8d9)}.lab-stat output,.lab-stat strong{font-size:1.25rem;display:block;color:var(--ct-73ebd1);overflow-wrap:anywhere;font-family:Consolas,monospace}.lab-error{color:var(--ct-ffd0c6);border-left:3px solid var(--cr-ffad8f);padding:10px 14px;background:var(--cf-351d23)}.lab-error:empty{display:none}.lab-bit-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin:20px 0}.lab-bit{min-height:65px;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--cr-536477);border-radius:9px;background:var(--cf-0d1928);color:var(--ct-cad6e5);font:inherit;cursor:pointer}.lab-bit small{font-size:.7rem}.lab-bit strong{font-size:1.3rem}.lab-bit[aria-pressed=true]{background:var(--cf-07594e);color:var(--ct-ffffff);border-color:var(--cr-59e7bf)}.lab-code{display:block;white-space:pre-wrap;overflow-wrap:anywhere;padding:16px;border:1px solid var(--cr-344858);border-radius:12px;background:var(--cf-07121c);color:var(--ct-a9f1dd);font: .94rem/1.6 Consolas,monospace}.lab-table-wrap{overflow-x:auto;max-width:100%;border:1px solid var(--cr-354554);border-radius:12px;margin:18px 0}.lab-table{width:100%;border-collapse:collapse;text-align:left}.lab-table th,.lab-table td{padding:12px;border-bottom:1px solid var(--cr-2c3d4c);vertical-align:top}.lab-table th{color:var(--ct-b5f4e7);background:var(--cf-152b37)}.lab-table tr:last-child td{border-bottom:0}.lab-table tr.current{background:var(--cf-164d46)}.lab-note{border-left:3px solid var(--cr-4dd7bc);padding:13px 17px;background:var(--cf-112c30);color:var(--ct-d3e9e7);margin:20px 0}.lab-warning{border-left-color:var(--cr-f4b65e);background:var(--cf-30261b);color:var(--ct-f3dfc2)}.lab-step-list{padding-left:23px}.lab-step-list li{margin:10px 0}.lab-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.lab-flow>div{border:1px solid var(--cr-476274);border-radius:12px;padding:16px;background:var(--cf-12212f)}.lab-flow>div.active{background:var(--cf-124b42);border-color:var(--cr-6fefcf)}.lab-flow small{display:block;color:var(--ct-b7c8d7)}.lab-io{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.lab-led{display:flex;align-items:center;gap:10px}.lab-led::before{content:'';width:15px;height:15px;flex:none;border:2px solid var(--cr-8c9baa);border-radius:50%;background:var(--cf-39424d)}.lab-led.on::before{background:var(--cf-58f2bb);border-color:var(--cr-acffdf);box-shadow:0 0 14px var(--cf-24dc90-a439)}.lab-rung{overflow-x:auto;margin:14px 0;border:1px solid var(--cr-395163);border-radius:14px;background:var(--cf-091522);padding:8px}.lab-rung svg{display:block;width:100%;min-width:460px}.lab-check{display:flex;gap:12px;align-items:center;padding:14px 0}.lab-check input{width:22px;height:22px;accent-color:var(--ct-11bc9a)}.lab-progress{width:100%;height:22px;accent-color:var(--ct-15c6a3)}.lab-source{font-size:.88rem;color:var(--ct-c1cddb);overflow-wrap:anywhere}.lab-source a{color:var(--ct-80dfed)}.lab-section details{margin:12px 0;padding:14px 17px;background:var(--cf-12202d);border:1px solid var(--cr-344859);border-radius:12px}.lab-section summary{cursor:pointer;font-weight:700}.lab-section details p{color:var(--ct-c9d5df)}.lab-mono{font-family:Consolas,monospace;overflow-wrap:anywhere}.lab-intro{max-width:900px}.lab-card a:not(.lab-button){color:var(--ct-86e1ec)}
.lab-stat .lab-led{display:flex}
@media(max-width:800px){.lab-grid{grid-template-columns:1fr}.lab-card{padding:20px}.lab-flow,.lab-io{grid-template-columns:1fr}.lab-fields{gap:12px}.lab-rung svg{min-width:430px}}
@media(max-width:450px){.lab-fields,.lab-results{grid-template-columns:1fr}.lab-span{grid-column:auto}.lab-bit-grid{gap:5px}.lab-bit{min-height:60px}.lab-card{padding:16px}.lab-table th,.lab-table td{padding:9px;font-size:.9rem}}
@media print{.site-header,.site-footer,.floating-top,.lab-nav,.hero-actions{display:none}body{background:var(--cf-ffffff);color:var(--ct-111111)}body:before{display:none}.lab-card,.lab-stat,.lab-result,.lab-note,.lab-flow>div{background:var(--cf-ffffff);color:var(--ct-111111);border-color:var(--cr-777777);box-shadow:none}.lab-card p,.lab-stat small,.lab-stat output,.lab-result strong{color:var(--ct-111111)}.lab-grid{display:block}.lab-card{margin:12px 0;break-inside:avoid}.gradient-text{color:var(--ct-111111);background:none}.lab-section{break-inside:auto}}
