.sfw{--sf-line:#e3e6ea;--sf-bg:#f7f8fa;--sf-ink:#1e252f;--sf-ink2:#5d6673;--sf-ink3:#8a93a0;--sf-blue:#1a6ce7;--sf-blue-dk:#1557c0;--sf-hover:#eef1f5;--sf-sel:#e8f0fe;height:100%;min-height:0;color:var(--sf-ink);background:#fff;flex-direction:column;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:13.5px;display:flex;position:relative;container:sfw/inline-size}.sfw button{font:inherit;color:inherit}.sfw svg{flex:none}.sfw kbd{font:11px var(--mono);border:1px solid var(--sf-line);color:var(--sf-ink2);background:#fff;border-bottom-width:2px;border-radius:4px;padding:1px 5px}.sfw-top{border-bottom:1px solid var(--sf-line);background:#fff;flex:none;align-items:center;gap:10px;height:48px;padding:0 10px 0 14px;display:flex}.sfw-title{align-items:center;gap:7px;min-width:0;font-size:14px;font-weight:600;display:inline-flex}.sfw-title svg{color:var(--sf-ink2)}.sfw-title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sfw-topright{align-items:center;gap:8px;margin-left:auto;display:flex}.sfw-pop{position:relative}.sfw-ctxbtn{border:1px solid var(--sf-line);white-space:nowrap;background:#fff;border-radius:16px;align-items:center;gap:6px;max-width:320px;height:32px;padding:0 10px;font-size:12.5px;font-weight:600;display:inline-flex}.sfw-ctxbtn:hover:not(:disabled){background:var(--sf-hover)}.sfw-ctxbtn:disabled{opacity:.55}.sfw-ctxbtn svg{width:15px;height:15px;color:var(--sf-ink2)}.sfw-ctxbtn .dotsep{color:var(--sf-ink3)}.sfw-ctxbtn .w{color:var(--sf-ink2);text-overflow:ellipsis;font-weight:500;overflow:hidden}.sfw-runwrap{align-items:center;display:inline-flex;position:relative}.sfw-run{background:var(--sf-blue);border-radius:50%;place-items:center;width:34px;height:34px;display:grid;color:#fff!important}.sfw-run:hover:not(:disabled){background:var(--sf-blue-dk)}.sfw-run:disabled{opacity:.6}.sfw-run svg{width:15px;height:15px;margin-left:2px}.sfw-runmore{border-radius:6px;place-items:center;width:22px;height:30px;display:grid;color:var(--sf-ink2)!important}.sfw-runmore:hover{background:var(--sf-hover)}.sfw-runmore svg{width:13px;height:13px}.sfw-objbtn{border:1px solid var(--sf-line);border-radius:6px;align-items:center;gap:6px;height:30px;padding:0 10px;font-size:12.5px;font-weight:600;display:none;color:var(--sf-ink2)!important}.sfw-objbtn svg{width:14px;height:14px}.sfw-menu{z-index:40;border:1px solid var(--sf-line);background:#fff;border-radius:8px;min-width:220px;max-height:340px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;overflow:auto;box-shadow:0 10px 32px #141c2829}.sfw-menu.right{left:auto;right:0}.sfw-menu .mh{letter-spacing:.04em;text-transform:uppercase;color:var(--sf-ink3);margin:6px 8px 4px;font-size:11px;font-weight:700}.sfw-menu button{text-align:left;border-radius:6px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:7px 10px;font-size:13px;display:flex}.sfw-menu button:hover{background:var(--sf-hover)}.sfw-menu button.on{background:var(--sf-sel);color:var(--sf-blue-dk);font-weight:600}.sfw-menu button small{color:var(--sf-ink3);font-size:11.5px;font-weight:400}.sfw-menu kbd{font-size:10.5px}.sfw-scrim{z-index:30;background:0 0;border:0;position:absolute;inset:0}.sfw.drawer-open .sfw-scrim{z-index:19;background:#141c2829}.sfw-cols{flex:1;min-height:0;display:flex}.sfw-explorer{border-right:1px solid var(--sf-line);background:#fff;flex:none;width:252px;padding:8px 6px 14px;overflow:auto}.sfw-search{border:1px solid var(--sf-line);background:var(--sf-bg);height:32px;color:var(--sf-ink3);border-radius:6px;align-items:center;gap:6px;margin:0 4px 8px;padding:0 9px;display:flex}.sfw-search:focus-within{border-color:var(--sf-blue);background:#fff}.sfw-search input{min-width:0;font:inherit;color:var(--sf-ink);background:0 0;border:0;outline:none;flex:1;font-size:13px}.sfw-loading{color:var(--sf-ink3);padding:8px 10px;font-size:12.5px}.sfw-tree,.sfw-tree ul{margin:0;padding:0;list-style:none}.sfw-tree ul{padding-left:14px}.sfw-tree .node{text-align:left;border-radius:5px;align-items:center;gap:5px;width:100%;height:27px;padding:0 4px;font-size:13px;display:flex}.sfw-tree .node:hover{background:var(--sf-hover)}.sfw-tree .node>svg{width:14px;height:14px;color:var(--sf-ink2)}.sfw-tree .node.db>svg{color:var(--sf-blue)}.sfw-tree .node .nm{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.sfw-tree .node.tbl .nm{font-family:var(--mono);font-size:12.5px}.sfw-tree .chev{width:14px;color:var(--sf-ink3);place-items:center;display:grid}.sfw-tree .chev svg{width:11px;height:11px;transition:transform .15s}.sfw-tree .chev.is-open svg{transform:rotate(90deg)}.sfw-tree .trow{align-items:center;display:flex}.sfw-tree .trow .node{flex:1;min-width:0}.sfw-tree .peek{width:24px;height:24px;color:var(--sf-ink3);opacity:0;border-radius:5px;place-items:center;display:grid}.sfw-tree .trow:hover .peek,.sfw-tree .peek:focus-visible{opacity:1}.sfw-tree .peek:hover{background:var(--sf-hover);color:var(--sf-ink)}.sfw-tree .peek svg{width:13px;height:13px}.sfw-tree .empty{color:var(--sf-ink3);padding:4px 8px;font-size:12px}.sfw-tree .cols{margin-bottom:4px;padding-left:24px}.sfw-tree .cols li{height:23px;font:12px var(--mono);cursor:default;border-radius:4px;align-items:center;gap:6px;padding:0 4px;display:flex}.sfw-tree .cols li:hover{background:var(--sf-hover)}.sfw-tree .tb,.sfw-details .tb{text-align:center;width:18px;color:var(--sf-ink3);font:600 10.5px system-ui,sans-serif}.sfw-tree .cn{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.sfw-tree .ct{color:var(--sf-ink3);white-space:nowrap;font-size:10.5px}.sfw-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.sfw-work{flex-direction:column;flex:1;min-height:0;display:flex}.sfw-work[hidden]{display:none}.sfw-edbar{border-bottom:1px solid var(--sf-line);flex:none;align-items:center;gap:10px;height:40px;padding:0 12px;display:flex}.sfw-dbbtn{height:28px;font-size:12.5px;font-weight:600;font-family:var(--mono);border-radius:6px;align-items:center;gap:6px;padding:0 8px;display:inline-flex}.sfw-dbbtn:hover{background:var(--sf-hover)}.sfw-dbbtn svg{width:14px;height:14px;color:var(--sf-ink2)}.sfw-hint{color:var(--sf-ink3);white-space:nowrap;text-overflow:ellipsis;margin-left:auto;font-size:12px;overflow:hidden}.sfw-body{flex:1;grid-template-columns:minmax(0,1fr);min-height:0;display:grid}.sfw-editor{min-height:0;overflow:hidden}.sfw-editor .cm-editor{height:100%}.sfw-split{cursor:row-resize;background:var(--sf-bg);border-top:1px solid var(--sf-line);border-bottom:1px solid var(--sf-line);touch-action:none}.sfw-split:hover,.sfw-split:focus-visible{background:#e8edf4;outline:none}.sfw-results{flex-direction:column;min-height:0;display:flex}.sfw-rhead{border-bottom:1px solid var(--sf-line);flex:none;align-items:center;gap:10px;height:38px;padding:0 10px 0 14px;display:flex}.sfw-rtab{border-radius:6px;padding:4px 10px;font-size:13px;font-weight:600}.sfw-rtab.on{background:var(--sf-sel);color:var(--sf-blue-dk)}.sfw-rnote{color:var(--sf-ink2);font-size:12px}.sfw-rstat{color:var(--sf-ink2);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto;font-size:12px}.sfw-detbtn{border-radius:6px;align-items:center;gap:6px;height:28px;padding:0 8px;font-size:12.5px;display:inline-flex;color:var(--sf-ink2)!important}.sfw-detbtn:hover,.sfw-detbtn.on{background:var(--sf-hover);color:var(--sf-ink)!important}.sfw-detbtn svg{width:14px;height:14px}.sfw-rbody{flex:1;min-height:0;display:flex}.sfw-pane{flex:1;min-width:0;overflow:auto}.sfw-details{border-left:1px solid var(--sf-line);background:#fff;flex:none;width:230px;padding:12px 14px;overflow:auto}.sfw-details .dh{margin:0 0 10px;font-size:13px;font-weight:700}.sfw-details .dh.sm{color:var(--sf-ink2);margin-top:16px;font-size:12px}.sfw-details dl{gap:10px;margin:0;display:grid}.sfw-details dt{color:var(--sf-ink3);font-size:11.5px}.sfw-details dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:13px;font-weight:600}.sfw-details dd.ok{color:#137333}.sfw-details dd.bad{color:#c5221f}.sfw-details .qid{align-items:center;gap:4px;font-weight:500;display:flex}.sfw-details .qid code{font:11px var(--mono);word-break:break-all;color:var(--sf-ink);background:0 0;border:0;padding:0}.sfw-details .qid button{width:24px;height:24px;color:var(--sf-ink3);border-radius:5px;flex:none;place-items:center;display:grid}.sfw-details .qid button:hover{background:var(--sf-hover);color:var(--sf-ink)}.sfw-details .qid button svg{width:13px;height:13px}.sfw-details .dn{color:var(--sf-ink3);margin:0;font-size:12.5px}.sfw-details .dcols{gap:4px;margin:0;padding:0;list-style:none;display:grid}.sfw-details .dcols li{font:12px var(--mono);align-items:center;gap:6px;min-width:0;display:flex}.sfw-details .dcols li span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sfw-gridwrap{width:max-content;min-width:100%}.sfw-grid{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums;font-size:13px}.sfw-grid th,.sfw-grid td{text-align:left;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #edf0f3;border-right:1px solid #f1f3f5;max-width:380px;padding:6px 12px;overflow:hidden}.sfw-grid thead th{z-index:2;letter-spacing:.02em;color:var(--sf-ink2);border-bottom:1px solid var(--sf-line);background:#fff;font-size:11.5px;font-weight:700;position:sticky;top:0}.sfw-grid th.num,.sfw-grid td.num{text-align:right}.sfw-grid .rn{z-index:1;color:var(--sf-ink3);text-align:right;border-right:1px solid var(--sf-line);background:#fff;min-width:36px;padding:6px 8px;font-size:11.5px;position:sticky;left:0}.sfw-grid thead .rn{z-index:3}.sfw-grid tbody tr:hover td:not(.rn){background:#f8fafc}.sfw-grid td.json{font-family:var(--mono);font-size:12px}.sfw-grid td.sel{outline:2px solid var(--sf-blue);outline-offset:-2px;background:var(--sf-sel)!important}.sfw-grid .null{color:var(--sf-ink3);font-size:12px;font-style:italic}.sfw-empty{color:var(--sf-ink2);padding:16px;font-size:13.5px}.sfw-note{color:var(--sf-ink2);padding:8px 16px;font-size:12.5px}.sfw-error{font:12.5px/1.55 var(--mono);color:#8c1d18;background:#fdf3f2;border-left:3px solid #c5221f;border-radius:0 6px 6px 0;margin:12px 14px;padding:10px 12px}.sfw-error p{white-space:pre-wrap;word-break:break-word;margin:0}.sfw-error .code{font-weight:600}.sfw-boot{max-width:460px;color:var(--sf-ink2);padding:22px 18px}.sfw-boot p{margin:0 0 10px}.sfw-boot b{color:var(--sf-ink)}.sfw-boot .sub{font-size:12.5px}.sfw-boot .bar{background:#eceef2;border-radius:3px;height:6px;margin-bottom:10px;overflow:hidden}.sfw-boot .bar i{background:var(--sf-blue);border-radius:3px;height:100%;transition:width .2s;display:block}.sfw-boot .bar i.indet{width:35%;animation:1.3s ease-in-out infinite sfw-slide}@keyframes sfw-slide{0%{transform:translate(-100%)}to{transform:translate(300%)}}.sfw-btn{border:1px solid var(--sf-line);border-radius:6px;height:30px;padding:0 12px;font-weight:600}.sfw-question{flex-direction:column;flex:1;gap:16px;min-width:0;padding:18px 20px;display:flex;overflow:auto}.sfw-code{border:1px solid var(--sf-line);border-radius:8px;margin:0;overflow:hidden}.sfw-code figcaption{color:var(--sf-ink2);background:var(--sf-bg);border-bottom:1px solid var(--sf-line);padding:6px 12px;font-size:12px;font-weight:600}.sfw-code pre{font:13px/1.6 var(--mono);white-space:pre;margin:0;padding:12px 14px;overflow-x:auto}.sfw-choices{gap:8px;display:grid}.sfw-choices label{border:1px solid var(--sf-line);cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.sfw-choices label:hover{background:#fbfcfd;border-color:#c9d2de}.sfw-choices label.on{border-color:var(--sf-blue);background:var(--sf-sel)}.sfw-choices input{opacity:0;pointer-events:none;position:absolute}.sfw-choices label:has(input:focus-visible){outline:2px solid var(--sf-blue);outline-offset:2px}.sfw-choices .letter{width:22px;height:22px;color:var(--sf-ink2);background:#fff;border:1px solid #c9d2de;border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.sfw-choices label.on .letter{background:var(--sf-blue);border-color:var(--sf-blue);color:#fff}.sfw-choices .opt{padding-top:1px;line-height:1.45}.sfw-choices.compact{gap:6px}.sfw-choices.compact label{padding:6px 10px}.sfw-qstrip{border-bottom:1px solid var(--sf-line);background:var(--sf-bg);flex:none;max-height:40%;padding:10px 12px;overflow:auto}@container sfw (width<=760px){.sfw-explorer{z-index:20;width:min(290px,86%);transition:transform .2s;position:absolute;top:48px;bottom:0;left:0;transform:translate(-102%);box-shadow:0 10px 40px #141c282e}.sfw.drawer-open .sfw-explorer{transform:none}.sfw-objbtn{display:inline-flex}.sfw-title,.sfw-hint,.sfw-details,.sfw-detbtn{display:none}}@container sfw (width<=440px){.sfw-ctxbtn .dotsep,.sfw-ctxbtn .w{display:none}}@media (width<=900px){.sfw.sfw{flex:none;height:clamp(540px,82dvh,780px)}}.sfw-exam{color:#193b61;background:#edf5fc;border-bottom:1px solid #c9dceb;flex-wrap:wrap;align-items:center;gap:10px 22px;padding:10px 14px;font-size:13px;display:flex}.sfw-exam b{font-variant-numeric:tabular-nums;margin-inline-start:8px}.sfw-exam button{color:#193b61;cursor:pointer;background:#fff;border:1px solid #9eb7ce;border-radius:4px;margin-inline-start:auto;padding:6px 10px}.sfw-exam button:focus-visible{outline-offset:2px;outline:2px solid #1a6ce7}.sfw-multiple{color:#46556a;margin:0 0 10px;font-size:14px}.sfw-choices input[type=checkbox]{accent-color:#1a6ce7;flex-shrink:0}@media (width<=600px){.sfw-exam{gap:8px}.sfw-exam>span:nth-child(2){order:3;width:100%;font-size:12px}}.sfw-filesbtn{color:var(--sf-blue);border:1px solid var(--sf-line);white-space:nowrap;border-radius:4px;padding:6px 8px;font-size:12px}.sfw-filesbtn:focus-visible{outline:2px solid var(--sf-blue);outline-offset:2px}.sfw-files{border-bottom:1px solid var(--sf-line);flex:none;max-height:200px;padding:10px 14px;overflow:auto}.sfw-files label{flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.sfw-files select{min-width:0;max-width:100%;color:var(--sf-ink);border:1px solid var(--sf-line);background:#fff;padding:4px}.sfw-files pre{white-space:pre;font:12px/1.5 var(--mono);margin:8px 0 0;overflow:auto}.sfw-profile{border-bottom:1px solid var(--sf-line);padding:12px 16px;font-size:12px}.sfw-profile>span{overflow-wrap:anywhere;color:var(--sf-ink2);margin:4px 0 8px;display:block}.sfw-profile dl{flex-wrap:wrap;gap:10px 20px;margin:0;display:flex}.sfw-profile dt{color:var(--sf-ink2)}.sfw-profile dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-weight:600}.sfw-profile p{color:var(--sf-ink2);margin:8px 0 0;line-height:1.45}.sfw-choices:has(input[type=checkbox]) .letter{border-radius:4px}@media (prefers-reduced-motion:reduce){.sfw *,.sfw :before,.sfw :after{transition:none!important;animation:none!important}}@container sfw (width<=440px){.sfw-topright{gap:6px}.sfw-filesbtn{padding:5px;font-size:11px}}.sfw-multiple{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.sfw-clear{color:var(--sf-blue);border:1px solid var(--sf-line);border-radius:4px;padding:5px 8px;font-size:12px}.sfw-clear:focus-visible{outline:2px solid var(--sf-blue);outline-offset:2px}.player[data-course=snowflake]:has(.sfw-exam) .player-top{flex-wrap:wrap;gap:10px 20px}.player[data-course=snowflake]:has(.sfw-exam) .player-top .crumb{flex:1}.player[data-course=snowflake]:has(.sfw-exam) .dots{flex-wrap:wrap;flex-basis:100%;order:4;min-width:0;margin-left:0}@container sfw (width<=440px){.sfw-top{gap:6px;padding-inline:8px}.sfw-topright{gap:5px;min-width:0}.sfw-objbtn{gap:4px;padding-inline:7px}.sfw-ctxbtn{gap:4px;max-width:108px;padding-inline:7px}.sfw-ctxbtn .r{text-overflow:ellipsis;min-width:0;overflow:hidden}}
