.LabCatalog-module__uElNyG__page{width:min(1180px, calc(100% - 2 * var(--ch-page-pad-x)));margin:0 auto;padding:30px 0 64px}.LabCatalog-module__uElNyG__header{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.LabCatalog-module__uElNyG__demoBadge{border-radius:var(--ch-radius-full);background:var(--ch-color-fill-1);min-height:25px;color:var(--ch-color-text-3);align-items:center;padding:0 9px;font-size:11px;display:inline-flex}.LabCatalog-module__uElNyG__header h1{color:var(--ch-color-text-0);font-size:32px;font-weight:var(--ch-weight-bold);letter-spacing:-.035em;margin-top:9px}.LabCatalog-module__uElNyG__header p{max-width:720px;color:var(--ch-color-text-2);margin-top:7px;line-height:1.7}.LabCatalog-module__uElNyG__stat{flex:none;align-items:baseline;gap:7px;display:flex}.LabCatalog-module__uElNyG__stat strong{color:var(--ch-color-primary-default);font-family:var(--ch-font-mono);font-size:30px}.LabCatalog-module__uElNyG__stat span{color:var(--ch-color-text-2);font-size:var(--ch-font-size-sm)}.LabCatalog-module__uElNyG__filters{flex-wrap:wrap;gap:8px;margin-top:24px;display:flex}.LabCatalog-module__uElNyG__filters button{border:1px solid var(--ch-color-border-default);border-radius:var(--ch-radius-full);background:var(--ch-color-bg-0);min-height:39px;color:var(--ch-color-text-1);font-weight:var(--ch-weight-medium);cursor:pointer;padding:0 16px}.LabCatalog-module__uElNyG__filters button:hover{border-color:var(--ch-color-primary-default)}.LabCatalog-module__uElNyG__filters button[data-active]{border-color:var(--ch-color-primary-default);background:var(--ch-color-primary-default);color:var(--ch-color-primary-text)}.LabCatalog-module__uElNyG__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px;display:grid}.LabCatalog-module__uElNyG__card{border:1px solid var(--ch-color-border-subtle);border-radius:var(--ch-radius-6);background:var(--ch-color-bg-0);min-height:310px;box-shadow:var(--ch-shadow-sm);transition:transform var(--ch-duration-quick) var(--ch-ease-out), box-shadow var(--ch-duration-quick) var(--ch-ease-out);flex-direction:column;padding:20px;display:flex}.LabCatalog-module__uElNyG__card:hover{box-shadow:var(--ch-shadow-md);transform:translateY(-3px)}.LabCatalog-module__uElNyG__cardTop{justify-content:space-between;align-items:center;gap:10px;display:flex}.LabCatalog-module__uElNyG__env{border-radius:var(--ch-radius-full);background:var(--ch-color-fill-1);color:var(--ch-color-text-2);font-size:var(--ch-font-size-xs);font-weight:var(--ch-weight-semibold);padding:5px 10px}.LabCatalog-module__uElNyG__env[data-env=web]{background:var(--ch-color-info-soft);color:var(--ch-color-info-default)}.LabCatalog-module__uElNyG__env[data-env=db]{color:#b45309;background:#fef3e2}.LabCatalog-module__uElNyG__env[data-env=net]{background:var(--ch-color-success-soft);color:var(--ch-color-success-default)}.LabCatalog-module__uElNyG__difficulty{color:var(--ch-color-text-3);font-size:var(--ch-font-size-xs);font-weight:var(--ch-weight-semibold)}.LabCatalog-module__uElNyG__difficulty[data-level=入门]{color:var(--ch-color-success-default)}.LabCatalog-module__uElNyG__difficulty[data-level=进阶]{color:#b45309}.LabCatalog-module__uElNyG__difficulty[data-level=挑战]{color:var(--ch-color-danger-default)}.LabCatalog-module__uElNyG__card h2{color:var(--ch-color-text-0);font-size:var(--ch-font-size-md);margin-top:15px;line-height:1.45}.LabCatalog-module__uElNyG__card>p{color:var(--ch-color-text-2);font-size:var(--ch-font-size-sm);flex:1;margin-top:8px;line-height:1.7}.LabCatalog-module__uElNyG__meta{color:var(--ch-color-text-3);font-size:var(--ch-font-size-xs);align-items:center;gap:8px;margin-top:15px;display:flex}.LabCatalog-module__uElNyG__meta i{background:currentColor;border-radius:50%;width:3px;height:3px}.LabCatalog-module__uElNyG__progress{align-items:center;gap:10px;min-height:24px;margin-top:11px;display:flex}.LabCatalog-module__uElNyG__progress>i{border-radius:var(--ch-radius-full);background:var(--ch-color-fill-2);flex:1;height:6px;overflow:hidden}.LabCatalog-module__uElNyG__progress b{border-radius:inherit;background:#df8f3e;height:100%;display:block}.LabCatalog-module__uElNyG__progress b[data-done]{background:var(--ch-color-success-default)}.LabCatalog-module__uElNyG__progress span{color:var(--ch-color-text-3);font-size:var(--ch-font-size-xs)}.LabCatalog-module__uElNyG__card>button{border-radius:var(--ch-radius-3);background:var(--ch-color-primary-default);width:100%;min-height:40px;color:var(--ch-color-primary-text);font-weight:var(--ch-weight-semibold);cursor:pointer;border:0;margin-top:13px}.LabCatalog-module__uElNyG__card>button[data-secondary]{border:1px solid var(--ch-color-border-default);background:var(--ch-color-bg-0);color:var(--ch-color-text-2)}.LabCatalog-module__uElNyG__backdrop{z-index:80;background:#04090fc2;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.LabCatalog-module__uElNyG__workspace{border:1px solid var(--ch-color-border-default);border-radius:var(--ch-radius-7);background:var(--ch-color-bg-0);width:min(1050px,100%);box-shadow:var(--ch-shadow-lg);overflow:hidden}.LabCatalog-module__uElNyG__workspace>header{border-bottom:1px solid var(--ch-color-border-subtle);justify-content:space-between;align-items:center;gap:18px;padding:17px 20px;display:flex}.LabCatalog-module__uElNyG__workspace>header span{color:var(--ch-color-primary-default);font-size:var(--ch-font-size-xs);font-weight:var(--ch-weight-semibold)}.LabCatalog-module__uElNyG__workspace>header h2{color:var(--ch-color-text-0);font-size:var(--ch-font-size-lg);margin-top:4px}.LabCatalog-module__uElNyG__workspace>header button{color:var(--ch-color-text-2);cursor:pointer;background:0 0;border:0;font-size:26px}.LabCatalog-module__uElNyG__labBody{grid-template-columns:310px minmax(0,1fr);min-height:440px;display:grid}.LabCatalog-module__uElNyG__labBody>aside{border-right:1px solid var(--ch-color-border-subtle);background:var(--ch-color-bg-2);padding:20px}.LabCatalog-module__uElNyG__labBody h3{color:var(--ch-color-text-0);font-size:var(--ch-font-size-sm);margin-bottom:14px}.LabCatalog-module__uElNyG__labBody aside button{border-radius:var(--ch-radius-3);width:100%;min-height:54px;color:var(--ch-color-text-1);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:9px 10px;display:flex}.LabCatalog-module__uElNyG__labBody aside button:hover{background:var(--ch-color-fill-1)}.LabCatalog-module__uElNyG__labBody aside button[data-checked]{color:var(--ch-color-success-default)}.LabCatalog-module__uElNyG__labBody aside button i{border:1px solid var(--ch-color-border-default);border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:11px;font-style:normal;display:grid}.LabCatalog-module__uElNyG__labBody aside button[data-checked] i{border-color:var(--ch-color-success-default);background:var(--ch-color-success-default);color:#fff}.LabCatalog-module__uElNyG__terminal{color:#d7e2ed;background:#0c1420;flex-direction:column;min-width:0;display:flex}.LabCatalog-module__uElNyG__terminal>div{color:#93a6b9;min-height:44px;font-size:var(--ch-font-size-xs);border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:0 16px;display:flex}.LabCatalog-module__uElNyG__terminal>div span:last-child{color:#68d9a0;align-items:center;gap:7px;display:flex}.LabCatalog-module__uElNyG__terminal>div i{background:currentColor;border-radius:50%;width:7px;height:7px}.LabCatalog-module__uElNyG__terminal pre{color:#c7d5e3;font-family:var(--ch-font-mono);font-size:var(--ch-font-size-sm);white-space:pre-wrap;flex:1;margin:0;padding:22px;line-height:1.8}.LabCatalog-module__uElNyG__terminal pre b{color:#67d6a0}.LabCatalog-module__uElNyG__terminal pre i{vertical-align:text-bottom;background:#c7d5e3;width:7px;height:15px;display:inline-block}.LabCatalog-module__uElNyG__terminal>button{border-radius:var(--ch-radius-3);background:var(--ch-color-primary-default);min-height:39px;color:var(--ch-color-primary-text);font-weight:var(--ch-weight-semibold);cursor:pointer;border:0;align-self:flex-end;margin:0 18px 18px;padding:0 14px}.LabCatalog-module__uElNyG__terminal>button svg{margin-right:7px}.LabCatalog-module__uElNyG__workspace>footer{border-top:1px solid var(--ch-color-border-subtle);color:var(--ch-color-text-3);font-size:var(--ch-font-size-xs);justify-content:space-between;align-items:center;gap:18px;padding:12px 18px;display:flex}.LabCatalog-module__uElNyG__workspace>footer strong{color:var(--ch-color-success-default)}@media (max-width:920px){.LabCatalog-module__uElNyG__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){.LabCatalog-module__uElNyG__header{flex-direction:column;align-items:flex-start}.LabCatalog-module__uElNyG__grid{grid-template-columns:1fr}.LabCatalog-module__uElNyG__labBody{grid-template-columns:1fr;max-height:70vh;overflow:auto}.LabCatalog-module__uElNyG__labBody>aside{border-right:0;border-bottom:1px solid var(--ch-color-border-subtle)}.LabCatalog-module__uElNyG__workspace>footer{flex-direction:column;align-items:flex-start}}
