.web-ctf-index .web-challenge-section{padding-top:38px}.web-ctf-index-hero{max-width:1180px;margin:var(--lab-space-2) 0 var(--lab-space-6);border:1px solid var(--lab-line);border-radius:var(--lab-radius-flat);background:var(--lab-surface);justify-content:space-between;align-items:flex-end;gap:30px;padding:42px 46px;display:flex}.web-ctf-index-hero span{color:var(--lab-secondary);letter-spacing:.19em;font-size:12px;font-weight:900}.web-ctf-index-hero h1{color:var(--lab-text);letter-spacing:-.05em;margin:10px 0;font-size:clamp(36px,5vw,62px)}.web-ctf-index-hero p{max-width:700px;color:var(--lab-text);font-size:15px;line-height:1.7}.web-ctf-index-hero strong{color:var(--lab-text);font-size:58px;line-height:.9}.web-ctf-index-hero strong small{margin-top:var(--lab-space-3);color:var(--lab-secondary);letter-spacing:.2em;font-size:12px;display:block}.web-ctf-index .web-section-nav{max-width:1180px;padding:var(--lab-space-3) var(--lab-space-4);border:1px solid var(--lab-line);border-radius:var(--lab-radius-flat);color:var(--lab-text);background:var(--lab-surface);margin-bottom:18px}.web-ctf-index .ctf-challenge-list{gap:var(--lab-space-3);background:0 0;border:0;grid-template-columns:repeat(2,minmax(0,1fr));max-width:1180px;display:grid;overflow:visible}.web-ctf-index .ctf-challenge-list>li{border:1px solid var(--lab-line);border-radius:var(--lab-radius-flat);background:var(--lab-surface);min-width:0;transition:color var(--lab-motion) ease, background-color var(--lab-motion) ease, border-color var(--lab-motion) ease;padding:22px}.web-ctf-index .ctf-challenge-list>li:hover{border-color:var(--lab-line);box-shadow:none;transform:none}.web-ctf-index .ctf-challenge-row{grid-template-columns:46px minmax(0,1fr) auto;align-items:start}.web-ctf-index .ctf-challenge-row>span{color:var(--lab-secondary);font:800 20px var(--lab-font-code)}.web-ctf-index .ctf-challenge-row>a{color:var(--lab-text);font-size:16px;line-height:1.4}.web-ctf-index .ctf-challenge-row>a:hover{color:var(--lab-accent);text-decoration:none}.web-ctf-index .ctf-challenge-row>a small{margin-top:var(--lab-space-2);color:var(--lab-accent);font-size:12px;font-weight:600;display:block}.web-ctf-index .ctf-challenge-row em{color:var(--lab-secondary);background:var(--lab-surface);white-space:nowrap}.web-ctf-index .ctf-flag-row{grid-template-columns:46px minmax(0,1fr) auto;margin:20px 0 0}.web-ctf-index .ctf-flag-row input{min-width:0;color:var(--lab-text);border-color:var(--lab-line);background:var(--lab-inset)}.web-ctf-index .ctf-flag-row button{background:var(--lab-surface)}.web-ctf-index .ctf-flag-row b,.web-ctf-index .ctf-flag-row small{grid-column:2/-1}.ctf-challenge-page.ctf-challenge-page{max-width:none;color:var(--lab-text);background:var(--lab-bg);padding:36px max(18px,50vw - 680px) 80px}.ctf-challenge-page .ctf-challenge-heading{margin-bottom:26px}.ctf-challenge-page .ctf-challenge-heading>a{color:var(--lab-accent);font-size:13px}.ctf-challenge-page .ctf-challenge-heading>div{align-items:center;gap:18px}.ctf-challenge-page .ctf-challenge-heading span{border:1px solid var(--lab-line);border-radius:var(--lab-radius-flat);width:56px;height:56px;color:var(--lab-secondary);background:var(--lab-bg);font:800 21px var(--lab-font-code);flex:none;place-items:center;display:grid}.ctf-challenge-page .ctf-challenge-heading h1{color:var(--lab-text);font-size:clamp(23px,3vw,36px)}.ctf-challenge-page .ctf-problem-description{max-width:1100px;padding:21px var(--lab-space-5);border:1px solid var(--lab-line);border-left:3px solid var(--lab-line);border-radius:var(--lab-radius-flat);color:var(--lab-text);background:var(--lab-bg);margin:22px 0 26px;font-size:14px;line-height:1.8}.ctf-challenge-page .ctf-problem-description b{color:var(--lab-secondary);font:900 12px var(--lab-font-code);letter-spacing:.17em;margin-bottom:5px}.ctf-challenge-page .ctf-vulnerable-site{border:1px solid var(--lab-line);border-radius:var(--lab-radius-flat);box-shadow:none;background:var(--lab-bg);color:var(--lab-text);overflow:hidden}.ctf-challenge-page>.web-flag-submit{border-color:var(--lab-line);border-radius:var(--lab-radius-flat);max-width:none;color:var(--lab-text);background:var(--lab-bg);margin-top:22px}.web-ctf-toast{z-index:1500;border:1px solid var(--lab-line);border-radius:var(--lab-radius-flat);width:min(470px,100vw - 32px);color:var(--lab-text);background:var(--lab-surface);box-shadow:none;gap:5px;padding:18px 20px 21px;animation:.25s both web-ctf-enter,.3s 2.7s forwards web-ctf-exit;display:grid;position:fixed;top:24px;right:24px;overflow:hidden}.web-ctf-toast.is-error{border-color:var(--lab-accent);color:var(--lab-accent);background:var(--lab-accent-soft)}.web-ctf-toast b{font-size:14px}.web-ctf-toast span{white-space:pre-wrap;font-size:13px;line-height:1.55}.web-ctf-toast i{background:var(--lab-surface);transform-origin:0;width:100%;height:3px;animation:3s linear forwards web-ctf-progress;position:absolute;bottom:0;left:0}.web-ctf-toast.is-error i{background:var(--lab-accent-soft)}@keyframes web-ctf-enter{0%{opacity:0;transform:none}to{opacity:1;transform:none}}@keyframes web-ctf-exit{to{opacity:0;transform:none}}@keyframes web-ctf-progress{to{transform:scaleX(0)}}.vuln-community-grid aside span.vuln-side-active{padding:11px var(--lab-space-3);border-radius:var(--lab-radius-flat);color:var(--lab-accent);background:var(--lab-accent-soft);font-weight:800}.vuln-community-grid aside small,.web-board-app aside small{margin:var(--lab-space-3);color:var(--lab-muted);font-size:12px;line-height:1.6}.vuln-page-head{justify-content:space-between;align-items:center;gap:var(--lab-space-4);border-bottom:1px solid var(--lab-line);padding-bottom:20px;display:flex}.vuln-page-head small{color:var(--lab-secondary);letter-spacing:.16em;font-size:12px;font-weight:900}.vuln-page-head h2{color:var(--lab-text);margin:5px 0 0;font-size:25px}.vuln-page-head>span{color:var(--lab-muted);font-size:12px}.vuln-editor-title{justify-content:space-between;align-items:center;margin-top:28px;display:flex}.vuln-editor-title h3{font-size:18px}.vuln-editor-title span{color:var(--lab-muted);font-size:12px}.vuln-board-callout{justify-content:space-between;gap:var(--lab-space-3);border:1px solid var(--lab-line);border-radius:var(--lab-radius-flat);background:var(--lab-surface);margin-top:23px;padding:17px;display:flex}.vuln-board-callout span{color:var(--lab-muted);font-size:12px}.vuln-community-app .vuln-notice-table{margin-top:22px}.vuln-community-app form{max-width:none}.vuln-community-app form .vuln-primary{width:max-content}.web-board-app .vuln-support-layout{grid-template-columns:185px minmax(0,1fr)}.web-board-app aside{gap:var(--lab-space-1)}.web-board-app aside b{margin:0 10px var(--lab-space-3);color:var(--lab-text);letter-spacing:.13em;font-size:12px}.web-board-app aside button{min-height:42px;padding:10px var(--lab-space-3);border-radius:var(--lab-radius-control);color:var(--lab-muted);text-align:left;cursor:pointer;background:0 0;border:0}.web-board-app aside button.active{color:var(--lab-accent);background:var(--lab-accent-soft);font-weight:800}.web-board-app .vuln-inner-main{min-width:0;padding:30px 34px}.web-board-notice{padding:13px var(--lab-space-4);border:1px solid var(--lab-line);border-radius:var(--lab-radius-flat);background:var(--lab-surface);align-items:center;gap:14px;margin:20px 0;font-size:12px;display:flex}.web-board-notice b{border-radius:var(--lab-radius-flat);color:var(--lab-secondary);background:var(--lab-surface);padding:3px 7px}.web-board-notice span{flex:1}.web-board-notice time{color:var(--lab-muted)}.web-board-toolbar{color:var(--lab-muted);justify-content:space-between;align-items:end;gap:20px;margin:23px 0 10px;font-size:12px;display:flex}.web-board-toolbar label{align-items:center;gap:var(--lab-space-2);display:flex}.web-board-toolbar select{border:1px solid var(--lab-line);border-radius:var(--lab-radius-control);background:var(--lab-surface);min-height:36px;padding:5px 9px}.web-board-list{border-collapse:collapse;width:100%}.web-board-list th,.web-board-list td{border-bottom:1px solid var(--lab-line);text-align:left;padding:14px 13px;font-size:12px}.web-board-list th{color:var(--lab-muted);background:var(--lab-surface)}.web-board-list td:first-child{color:var(--lab-muted);font-family:var(--lab-font-code)}.web-board-list td:last-child{color:var(--lab-muted)}.web-board-list tr.selected td{background:var(--lab-accent-soft)}.web-board-list button{color:var(--lab-text);text-align:left;cursor:pointer;background:0 0;border:0;font-weight:750}.web-board-list button:hover{color:var(--lab-secondary);text-decoration:underline}.web-board-detail,.web-board-editor{margin-top:var(--lab-space-5);border:1px solid var(--lab-line);border-radius:var(--lab-radius-flat);background:var(--lab-surface);padding:23px}.web-board-detail h3{color:var(--lab-text);font-size:18px}.web-board-detail p,.web-board-editor p{color:var(--lab-muted);margin:9px 0;font-size:12px;line-height:1.65}.web-board-detail-head{justify-content:space-between;align-items:start;gap:20px;display:flex}.web-board-detail-head form{margin:0}.web-board-detail form,.web-board-editor form{gap:var(--lab-space-3);margin-top:17px;display:grid}.web-board-detail label,.web-board-editor label{color:var(--lab-text);gap:6px;font-size:12px;font-weight:800;display:grid}.web-board-detail input,.web-board-detail textarea,.web-board-editor input,.web-board-editor textarea,.web-board-editor select{width:100%;min-height:42px;padding:10px var(--lab-space-3);border:1px solid var(--lab-line);border-radius:var(--lab-radius-control);background:var(--lab-inset)}.web-board-detail textarea,.web-board-editor textarea{resize:vertical;min-height:145px}.web-board-detail .vuln-primary,.web-board-editor .vuln-primary{width:max-content}.web-board-danger{padding:var(--lab-space-2) var(--lab-space-3);border:1px solid var(--lab-accent);border-radius:var(--lab-radius-flat);color:var(--lab-accent);background:var(--lab-accent-soft);cursor:pointer}.web-board-comments{border-radius:var(--lab-radius-flat);background:var(--lab-surface);margin-top:20px;padding:18px}.web-board-comments h4{font-size:13px}.web-board-comments p{gap:10px;padding-top:10px;display:flex}.web-board-write-button{margin-top:20px}.web-inquiry-app>main{max-width:900px;min-height:500px;margin:0 auto;padding:30px}.web-inquiry-app form{gap:var(--lab-space-4);display:grid}.web-inquiry-app textarea{min-height:220px}.web-inquiry-app .vuln-primary{width:max-content}.web-jwt-app{background:var(--lab-surface);min-height:600px}.web-jwt-app>header{min-height:76px;color:var(--lab-text);background:var(--lab-surface);justify-content:space-between;align-items:center;padding:0 38px;display:flex}.web-jwt-app>header b{letter-spacing:.08em;font-size:19px;display:block}.web-jwt-app>header b span{color:var(--lab-secondary)}.web-jwt-app>header small{color:var(--lab-muted);letter-spacing:.18em;font-size:12px}.web-jwt-app>header nav{color:var(--lab-muted);font-size:12px}.web-jwt-app>header nav i{border-left:1px solid var(--lab-line);vertical-align:middle;height:14px;margin:0 14px;display:inline-block}.web-jwt-app>.vuln-inner-main{max-width:1080px;margin:auto;padding:34px}.web-jwt-hero{justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}.web-jwt-hero small,.web-jwt-grid section>small{color:var(--lab-secondary);letter-spacing:.14em;font-size:12px;font-weight:900}.web-jwt-hero h2{color:var(--lab-text);margin:5px 0;font-size:27px}.web-jwt-hero p{color:var(--lab-muted);font-size:13px}.web-jwt-hero>span{padding:var(--lab-space-2) var(--lab-space-3);border-radius:var(--lab-radius-flat);color:var(--lab-secondary);background:var(--lab-surface);font-size:12px;font-weight:800}.web-jwt-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.web-jwt-grid section{border:1px solid var(--lab-line);border-radius:var(--lab-radius-flat);background:var(--lab-surface);min-width:0;box-shadow:none;padding:27px}.web-jwt-grid h3{margin:var(--lab-space-3) 0 var(--lab-space-1);color:var(--lab-text);font-size:20px}.web-jwt-grid p{color:var(--lab-muted);font-size:12px;line-height:1.6}.web-jwt-avatar{border-radius:var(--lab-radius-flat);width:52px;height:52px;color:var(--lab-secondary);background:var(--lab-surface);place-items:center;margin-top:20px;display:grid}.web-jwt-avatar svg{width:28px}.web-jwt-grid dl{border-top:1px solid var(--lab-line);margin:22px 0}.web-jwt-grid dl div{border-bottom:1px solid var(--lab-line);justify-content:space-between;padding:10px 0;font-size:12px;display:flex}.web-jwt-grid dt{color:var(--lab-muted)}.web-jwt-grid dd{color:var(--lab-text);font-weight:750}.web-jwt-grid form{margin-top:22px}.web-jwt-endpoint{border:1px solid var(--lab-line);border-radius:var(--lab-radius-flat);background:var(--lab-surface);align-items:center;gap:9px;margin-top:25px;padding:14px;display:flex}.web-jwt-endpoint span{padding:var(--lab-space-1) 6px;border-radius:var(--lab-radius-flat);color:var(--lab-text);background:var(--lab-surface);font-size:12px;font-weight:900}.web-jwt-endpoint code{overflow-wrap:anywhere;font-size:12px}.web-jwt-token{padding-top:var(--lab-space-4);border-top:1px solid var(--lab-line);margin-top:26px}.web-jwt-token summary{color:var(--lab-muted);cursor:pointer;font-size:12px}.web-jwt-token textarea{width:100%;min-height:95px;margin-top:var(--lab-space-3);border:1px solid var(--lab-line);border-radius:var(--lab-radius-control);font:12px/1.5 var(--lab-font-code);overflow-wrap:anywhere;resize:vertical;padding:10px;display:block}@media (max-width:900px){.web-ctf-index .ctf-challenge-list,.web-jwt-grid,.web-board-app .vuln-support-layout{grid-template-columns:1fr}.web-board-app aside{border-right:0;border-bottom:1px solid var(--lab-line);display:flex;overflow:auto}.web-board-app aside b,.web-board-app aside small{display:none}}@media (max-width:620px){.web-ctf-index-hero{padding:28px}.web-ctf-index-hero strong{display:none}.ctf-challenge-page.ctf-challenge-page{padding:22px 10px 55px}.ctf-challenge-heading>div{align-items:flex-start}.ctf-challenge-heading span{width:42px;height:42px;font-size:15px}.ctf-problem-description{padding:var(--lab-space-4)}.web-board-app .vuln-inner-main,.web-jwt-app>.vuln-inner-main{padding:20px 14px}.web-jwt-app>header{padding:0 17px}.web-board-list th,.web-board-list td{padding:11px 5px}.web-board-list th:last-child,.web-board-list td:last-child{display:none}.web-ctf-toast{top:12px;right:16px}}@media (prefers-reduced-motion:reduce){.web-ctf-toast,.web-ctf-toast i{animation:none}}.web-ctf-index{background:var(--lab-bg);color:var(--lab-text)}.web-ctf-index .web-back{color:var(--lab-text)}.web-ctf-index-hero{border-color:var(--lab-line);background:var(--lab-surface)}.web-ctf-index-hero span,.web-ctf-index-hero strong small{color:var(--lab-secondary)}.web-ctf-index-hero h1,.web-ctf-index-hero strong{color:var(--lab-text)}.web-ctf-index-hero p{color:var(--lab-muted)}.web-ctf-index .web-section-nav{border-color:var(--lab-line);color:var(--lab-muted);background:var(--lab-surface)}.web-ctf-index .web-section-nav label{color:var(--lab-muted)}.web-ctf-index .web-section-nav select{color:var(--lab-text);background:var(--lab-surface);border-color:var(--lab-line)}.web-ctf-index .ctf-challenge-list>li{border-color:var(--lab-line);background:var(--lab-surface);box-shadow:none}.web-ctf-index .ctf-challenge-list>li:hover{border-color:var(--lab-line);box-shadow:none}.web-ctf-index .ctf-challenge-list>li.complete{border-color:var(--lab-accent);background:var(--lab-accent-soft)}.web-ctf-index .ctf-challenge-row>span{color:var(--lab-secondary)}.web-ctf-index .ctf-challenge-row>a,.web-ctf-index .ctf-challenge-row>a:hover,.web-ctf-index .ctf-challenge-row>a small{color:var(--lab-accent)}.web-ctf-index .ctf-challenge-row em{color:var(--lab-secondary);background:var(--lab-surface)}.web-ctf-index .ctf-flag-row label{color:var(--lab-text)}.web-ctf-index .ctf-flag-row input{color:var(--lab-text);border-color:var(--lab-line);background:var(--lab-inset)}.ctf-challenge-page.ctf-challenge-page{color:var(--lab-text);background:var(--lab-bg)}.ctf-challenge-page .ctf-challenge-heading>a{color:var(--lab-accent)}.ctf-challenge-page .ctf-challenge-heading>div>span{border-color:var(--lab-line);color:var(--lab-secondary);background:var(--lab-bg)}.ctf-challenge-page .ctf-challenge-heading h1{color:var(--lab-text)}.ctf-challenge-page .ctf-problem-description{border-color:var(--lab-line);border-left-color:var(--lab-line);color:var(--lab-muted);background:var(--lab-bg)}.ctf-challenge-page .ctf-problem-description b{color:var(--lab-secondary)}.ctf-challenge-page .ctf-vulnerable-site{border-color:var(--lab-line);box-shadow:none}.ctf-challenge-page>.web-flag-submit{border-color:var(--lab-line);color:var(--lab-text);background:var(--lab-bg)}.ctf-challenge-page .web-flag-submit b{color:var(--lab-text)}.ctf-challenge-page .web-flag-submit input{background:var(--lab-inset);border-color:var(--lab-line);color:var(--lab-text)}.web-csrf-board .web-board-toolbar{align-items:center}.web-csrf-board .web-board-toolbar .vuln-primary{width:auto;min-height:38px;padding:var(--lab-space-2) 14px}.web-csrf-board .web-csrf-post-body{border:1px solid var(--lab-line);border-radius:var(--lab-radius-flat);color:var(--lab-text);background:var(--lab-bg);white-space:pre-wrap;overflow-wrap:anywhere;margin:20px 0;padding:18px;font-size:13px;line-height:1.75}.web-csrf-board .web-board-comments p{align-items:baseline}.web-csrf-board .web-csrf-account-role{justify-content:space-between;gap:var(--lab-space-4);border:1px solid var(--lab-line);border-radius:var(--lab-radius-flat);color:var(--lab-muted);background:var(--lab-surface);align-items:center;margin-top:22px;padding:17px 19px;font-size:13px;display:flex}.web-csrf-board .web-csrf-account-role b{padding:7px var(--lab-space-3);border-radius:var(--lab-radius-flat);color:var(--lab-secondary);background:var(--lab-surface);font:800 13px var(--lab-font-code)}.web-challenge-hints{border:1px solid var(--lab-line);border-radius:var(--lab-radius-flat);background:var(--lab-surface);box-shadow:none;margin-top:20px}.web-challenge-hints>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:14px;padding:18px 22px;list-style:none;display:flex}.web-challenge-hints>summary::-webkit-details-marker{display:none}.web-challenge-hints>summary span{color:var(--lab-text);align-items:center;gap:9px;font-size:15px;font-weight:800;display:flex}.web-challenge-hints>summary svg{width:19px;height:19px;color:var(--lab-secondary)}.web-challenge-hints>summary small{color:var(--lab-muted);font-size:12px}.web-challenge-hints[open]>summary{border-bottom:1px solid var(--lab-line)}.web-hint-content{padding:20px 22px 22px}.web-hint-content>p{margin:0 0 var(--lab-space-4);color:var(--lab-muted);font-size:12px}.web-hint-content ol{gap:9px;margin:0;padding:0;list-style:none;display:grid}.web-hint-content li{gap:var(--lab-space-3);border:1px solid var(--lab-line);border-radius:var(--lab-radius-flat);background:var(--lab-surface);padding:14px;display:flex}.web-hint-content li.revealed{border-color:var(--lab-accent);background:var(--lab-accent-soft)}.web-hint-content li>span{border-radius:var(--lab-radius-flat);width:27px;height:27px;color:var(--lab-secondary);background:var(--lab-surface);font:800 12px var(--lab-font-code);flex:none;place-items:center;display:grid}.web-hint-content li b{color:var(--lab-text);font-size:12px;display:block}.web-hint-content li p{color:var(--lab-muted);margin:5px 0 0;font-size:13px;line-height:1.6}.web-hint-content li.revealed p{color:var(--lab-accent)}.web-hint-actions{flex-wrap:wrap;gap:9px;margin-top:17px;display:flex}.web-hint-actions button{min-height:37px;padding:var(--lab-space-2) 13px;border:1px solid var(--lab-line);border-radius:var(--lab-radius-control);color:var(--lab-text);background:var(--lab-surface);cursor:pointer;font-size:12px;font-weight:800}.web-hint-actions button.secondary{border-color:var(--lab-line);color:var(--lab-muted);background:var(--lab-surface)}.web-hint-actions button:disabled{opacity:.55;cursor:default}@media (max-width:620px){.web-challenge-hints>summary{padding:var(--lab-space-4);flex-direction:column;align-items:flex-start}.web-hint-content{padding:var(--lab-space-4)}}.ctf-challenge-heading>div>span,.web-jwt-hero small,.web-jwt-grid section>small{color:var(--lab-secondary)}.web-challenge-meta span,.web-environment p,.vuln-login-app section>p,.vuln-login-app small,.web-challenge-hints>summary small,.web-hint-content>p,.web-hint-content li p,.vuln-page-head>span,.vuln-file-list small,.vuln-import-app>.vuln-inner-main>p,.web-jwt-hero p,.web-jwt-grid p,.web-jwt-grid dt{color:var(--lab-muted)}.ctf-challenge-page.ctf-challenge-page .ctf-challenge-heading>div>span{color:var(--lab-secondary)}.ctf-challenge-page.ctf-challenge-page .ctf-challenge-heading p.web-challenge-meta>span,.ctf-challenge-page .vuln-board-callout span{color:var(--lab-muted)}
