:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:#26332e;background:#f5f7f5;font-size:16px;--green:#46753e;--line:#dbe1db;--muted:#718077}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,.button{border:1px solid #cbd3c9;background:white;padding:7px 13px;border-radius:3px;color:#334032;cursor:pointer;text-decoration:none;display:inline-block}button:hover,.button:hover{background:#eef4eb}button:disabled{opacity:.45;cursor:default}.primary{background:var(--green);color:white;border-color:var(--green)}.primary:hover{background:#355d2e}.large{padding:13px 24px;font-weight:600}.text-button{border:0;background:transparent;color:#4c6153;padding:7px 4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,tr:focus-visible{outline:3px solid #a4bf7b;outline-offset:2px}.muted,small{color:var(--muted)}h1,h2,h3,p{margin-top:0}h1{font-size:34px;letter-spacing:-1px;line-height:1.2;margin-bottom:12px}p{line-height:1.6}h2{font-size:20px}h3{font-size:16px}.eyebrow{color:#658458;font-size:13px;font-weight:700;letter-spacing:1.8px;margin-bottom:16px}.course-header{display:flex;justify-content:space-between;align-items:center;padding:16px 32px;background:white;border-bottom:1px solid #e0e6df;gap:16px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#25372c;font-weight:700;font-size:19px}.brand small{display:block;font-size:10px;letter-spacing:1.5px;margin-top:4px}.brandmark{display:grid;place-items:center;background:#527348;color:white;width:34px;height:34px;border-radius:9px;font-size:25px;font-weight:500}.course-right{display:flex;gap:13px;align-items:center;font-size:14px}.xp{background:#f1f5e8;color:#688236;padding:7px 12px;border-radius:20px;font-weight:700}.avatar{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#edf0ea;color:#67765f}.catalog,.scenario{max-width:1180px;margin:auto;padding:48px 32px 20px}.catalog-heading{display:flex;justify-content:space-between;gap:24px;margin-bottom:30px}.catalog-heading p{color:#728076;font-size:18px}.progress-box{min-width:260px;max-width:330px;padding-top:8px}.progress-box strong{font-size:19px}.progress-box strong span{font-size:14px;color:#75806d;font-weight:400}.progress-track{height:5px;background:#e2e8dd;border-radius:5px;margin:13px 0}.progress-track i{display:block;background:#7a9c54;height:5px}.progress-0{width:0}.progress-1{width:20%}.catalog-banner{display:flex;align-items:center;gap:18px;background:#edf2e8;border:1px solid #dfe7d9;padding:23px;border-radius:8px;margin-bottom:27px}.catalog-banner p{margin:4px 0 0;color:#6d7b66;font-size:15px}.catalog-banner>.badge{margin-left:auto}.shield{font-size:32px;color:#7d9467}.badge{display:inline-block;padding:3px 7px;font-size:13px;border-radius:3px;white-space:nowrap;line-height:1.5}.good{color:#46703d;background:#eaf2e5}.bad{color:#ad4b45;background:#f8ecea}.neutral{background:#e9eee7;color:#66715f}.challenge-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.challenge{background:white;border:1px solid #dde5d8;border-radius:8px;padding:23px;display:flex;flex-direction:column;min-height:290px}.challenge:first-child{border-top:3px solid #74975a}.challenge.locked{background:#fafbf9}.challenge-meta{display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.8px;color:#7a8770}.challenge-symbol{font-size:28px;color:#728665;margin:23px 0 17px}.challenge h2{font-size:18px;line-height:1.35}.challenge p{color:#73806b;font-size:15px;flex:1}.challenge-footer{border-top:1px solid #edf0e9;padding-top:17px;display:flex;justify-content:space-between;align-items:center;gap:10px}.challenge-footer span{font-size:12px;color:#8b9485}.challenge-footer b{display:block;font-size:13px;color:#789052;margin-top:5px}.challenge-footer button{font-size:14px}.pending{font-size:12px;margin-top:12px}.disclaimer{text-align:center;color:#8a9584;font-size:12px;padding:30px 10px}.scenario{max-width:1060px}.scenario>.text-button{margin-bottom:24px}.lead{font-size:19px;color:#6c7b68;max-width:770px}.card{background:white;border:1px solid var(--line);border-radius:6px;padding:24px;margin:30px 0}.topology{display:flex;align-items:center;justify-content:center;padding:32px 10px;gap:10px}.node{text-align:center;min-width:98px}.node>span{font-size:30px;color:#688158;display:block;margin-bottom:12px}.node strong{font-size:14px;display:block;margin-bottom:7px}.node small{font-size:12px}.firewall{background:#eef3e8;border:1px solid #d6e3cb;padding:18px;border-radius:6px}.wire{min-width:50px;flex:1;max-width:95px;text-align:center}.wire small{font-size:11px;white-space:nowrap}.wire i{display:block;height:1px;background:#a7baa0;margin-top:7px}.objective{padding:20px;background:#eef3e8;border-left:3px solid #739658;margin-bottom:24px}.objective p{margin:6px 0 0}.scenario>.muted{font-size:14px;margin-top:15px}.labbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 24px;font-size:14px;background:#f4f6f1;border-bottom:1px solid var(--line)}.labbar>span{margin-right:auto}.labbar strong{background:#e0e9d8;padding:5px 7px;margin-right:7px;color:#6b8457}.labbar>div{display:flex;gap:8px}.labbar button{font-size:14px}.fortigate{margin:16px 20px 0;border:1px solid #c7d0c4;background:#fff;box-shadow:0 2px 6px #15281008}.fg-header{height:46px;display:flex;align-items:center;gap:18px;background:#426b3c;color:#fff;padding:0 18px}.fg-brand{font-size:18px;letter-spacing:1px}.fg-brand small{font-size:10px;display:inline-block;font-weight:400;color:#c8dbc1;margin-left:8px;letter-spacing:1.5px}.hostname{font-size:15px;border-left:1px solid #ffffff40;padding-left:18px}.fg-user{margin-left:auto;display:flex;gap:28px;font-size:14px}.fg-user>span:first-child{color:#d2e0c8;font-size:12px}.fg-menu{display:none}.fg-body{display:flex;min-height:580px}.fg-nav{width:215px;flex-shrink:0;background:#303733;color:#d5dcd4;position:relative;padding:10px 0 55px}.fg-nav summary{padding:12px 18px;font-size:15px;cursor:pointer}.fg-nav button{display:block;background:transparent;color:#d5dcd4;border:0;border-radius:0;width:100%;text-align:left;padding:10px 18px 10px 37px;font-size:14px}.fg-nav button:hover{background:#3d463e}.fg-nav button.active{background:#557847;color:#fff;border-left:3px solid #aec28f;padding-left:34px}.nav-bottom{position:absolute;bottom:16px;left:20px;font-size:12px;color:#8d9b8b}.fg-content{min-width:0;flex:1;background:#f8f9f7;display:flex;flex-direction:column}.page-title{padding:16px 20px 13px;background:white;border-bottom:1px solid #e2e6df;display:flex;align-items:center;gap:20px}.page-title h2{font-size:18px;font-weight:500;margin:0}.page-title>span{font-size:12px;margin-left:auto}.toolbar{display:flex;align-items:center;gap:5px;padding:10px 14px;background:#f1f3ef;border-bottom:1px solid #dae0d6;flex-wrap:wrap}.toolbar button{font-size:14px;padding:5px 10px}.toolbar-end{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:13px}.search{display:flex;align-items:center;background:white;border:1px solid #cdd6c7;border-radius:3px;padding:3px 7px;color:#8a9584}.search input{width:130px;border:0;padding:3px;font-size:13px}.table-wrap{overflow:auto;max-width:100%;background:white}table{border-collapse:collapse;width:100%;font-size:14px;white-space:nowrap;text-align:left}th{font-weight:500;color:#56624f;background:#f0f3ed;border-right:1px solid #e2e7de;border-bottom:1px solid #ced8c5;padding:10px 12px}td{padding:11px 12px;border-bottom:1px solid #e9eee5;color:#4c5946}tbody tr[data-row]{cursor:pointer}tbody tr[data-row]:hover{background:#f1f6eb}tbody tr.selected{background:#e5eedc}.port{color:#6a8a52;margin-right:5px}.empty{text-align:center;color:#93a087;padding:40px}.implicit{display:flex;align-items:center;gap:25px;padding:12px 20px;background:#f2f4ef;border-top:1px solid #dce3d5;color:#85917b;font-size:13px}.implicit .badge{margin-left:auto}.fg-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding:12px 18px;border-top:1px solid #e0e6da;color:#8a967f;font-size:12px}.fg-foot button{font-size:12px}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;padding:20px}.widget{border:1px solid #dce4d6;background:white;border-radius:3px;padding:17px}.widget h3{border-bottom:1px solid #e8ede4;padding-bottom:12px;color:#4b5c43;font-weight:500}.widget p{font-size:14px;color:#7c8873}.widget.wide{grid-column:span 2}.widget dl{display:grid;grid-template-columns:1fr 1.2fr;row-gap:16px;font-size:14px}.widget dt{color:#7b8872}.widget dd{margin:0;color:#4c6043}.interface-status{display:flex;justify-content:space-between;padding:13px 0;font-size:14px}.interface-status small{margin-left:12px}.diagnostics{padding:20px;display:grid;gap:20px}.probe-actions{display:flex;flex-wrap:wrap;gap:10px}pre{padding:20px;background:#f4f6f1;color:#607153;font:12px/1.7 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;min-height:90px;border:1px solid #e4eadd}pre.success{border-left:3px solid #779759}pre.failure{border-left:3px solid #b87368}.settings{margin:20px;max-width:750px}.tabs{display:flex;gap:25px;border-bottom:1px solid var(--line);padding:10px 0;margin-bottom:20px;font-size:14px}.tabs .active{color:#5d8547;border-bottom:2px solid #5d8547;padding-bottom:10px}.theme-dot{display:inline-block;width:10px;height:10px;background:#547943;border-radius:50%;margin-right:5px}.lab-disclaimer{padding:16px}.login{max-width:760px;margin:70px auto;padding:30px}.login h1{font-size:48px}.login h1 span{color:#6e8d58}.login>p{font-size:19px;color:#7a8871;max-width:560px}.login-card{background:white;border:1px solid #dce4d6;padding:32px;margin:35px 0;border-radius:8px}.login-card h2{margin-top:20px}.login-options{display:flex;gap:12px}.login>small{display:block;font-size:12px}.loading{padding:60px;text-align:center;color:#71836b}dialog{border:1px solid #ced8c5;padding:0;border-radius:5px;max-width:580px;width:calc(100% - 30px);max-height:90vh;box-shadow:0 20px 60px #10200b30}dialog::backdrop{background:#1b2a2166}dialog form header{background:#466c3c;color:white;display:flex;justify-content:space-between;align-items:center;padding:15px 20px}dialog form header h2{font-size:19px;font-weight:500;margin:0}dialog form header button{background:transparent;border:0;color:white;font-size:21px}.form-body{padding:24px;max-height:65vh;overflow:auto}.field{display:grid;grid-template-columns:180px 1fr;gap:12px;align-items:center;margin-bottom:17px;font-size:14px}.field>span:first-child{color:#687a5e}.field input:not([type=checkbox]),.field select{width:100%;min-width:0;border:1px solid #bdcbb3;padding:7px;border-radius:3px;background:white;color:#3d5133}.toggle{font-size:14px;color:#617654;display:flex;align-items:center;gap:8px}.toggle input{accent-color:#578047;width:16px;height:16px}fieldset{border:1px solid #dae4d2;padding:15px 12px;margin-bottom:18px}legend{font-size:14px;color:#728768}fieldset p{font-size:12px;margin:0}fieldset:disabled{opacity:.5}dialog footer{border-top:1px solid #e1e8dc;padding:14px 20px;display:flex;justify-content:flex-end;gap:8px}#form-error{font-size:14px;color:#a8544e}.confirm,.result{padding:32px}.confirm h2{font-size:20px}.confirm p{color:#74876a}.confirm>div{display:flex;gap:10px;margin-top:22px}.result{text-align:center}.result-icon{width:64px;height:64px;border-radius:50%;background:#edf2e7;display:grid;place-items:center;margin:0 auto 20px;font-size:30px;color:#7e9668}.result h2{font-size:24px}.result p{color:#6b7f60}.result-xp{background:#eef4e4;color:#6c913f;font-weight:700;font-size:24px;padding:20px;margin:25px 0}.result button{margin-top:12px}#notice{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);padding:14px 20px;background:#34472d;color:white;box-shadow:0 4px 20px #0002;border-radius:5px;font-size:14px;z-index:50;max-width:calc(100% - 24px);opacity:0;pointer-events:none;transition:opacity .15s}#notice.shown{opacity:1}
@media(min-width:1500px){.fortigate{max-width:1540px;margin:20px auto 0}}
.lab-status{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;margin:14px 20px 0;padding:10px 14px;border:1px solid #dce4d6;border-radius:3px;background:#edf3e8;color:#4e6741;font-size:13px;line-height:1.5}
@media(max-width:650px){.lab-status{margin:10px 8px 0;font-size:13px}.labbar>span{max-width:none}.fg-foot{flex-wrap:wrap;gap:6px}.challenge-footer{flex-wrap:wrap}.probe-actions button{white-space:normal}.widget dl{column-gap:12px}.widget dd{overflow-wrap:anywhere}}
@media(max-width:1000px){.challenge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fg-nav{width:180px}.fg-brand small{display:none}.fg-body{min-height:600px}.dashboard-grid{grid-template-columns:1fr}.widget.wide{grid-column:auto}.topology{gap:5px}.node{min-width:85px}.wire{min-width:35px}.labbar>span{max-width:270px}}
@media(max-width:650px){.course-header{padding:12px 16px}.brand{font-size:16px}.course-right{gap:7px}.course-right>span:not(.xp){display:none}.catalog,.scenario{padding:30px 18px}.catalog-heading{display:block}.catalog-heading h1{font-size:28px}.progress-box{margin-bottom:20px}.catalog-banner{padding:16px;gap:12px}.catalog-banner>.badge{display:none}.challenge-grid{grid-template-columns:1fr}.challenge{min-height:260px}.labbar{padding:10px;flex-wrap:wrap;gap:8px}.labbar>span{font-size:13px}.labbar>div{width:100%;justify-content:flex-end}.fortigate{margin:10px 0 0;border-left:0;border-right:0}.fg-header{gap:10px;padding:0 12px}.fg-brand{font-size:16px}.hostname{display:none}.fg-user{gap:9px;font-size:12px}.fg-user>span:first-child{display:none}.fg-menu{display:block;color:white;background:transparent;border:0;padding:5px}.fg-body{position:relative}.fg-nav{display:none;position:absolute;top:0;bottom:0;z-index:10;width:210px}.fg-nav.mobile-open{display:block}.fg-content{width:100%}.page-title{padding:14px}.toolbar{padding:8px}.toolbar-end{width:100%;margin-top:6px}.toolbar-end .search{margin-left:auto}.dashboard-grid,.diagnostics{padding:12px;gap:12px}.topology{flex-wrap:wrap;padding:20px 0}.node{min-width:92px}.node small{font-size:11px}.wire{flex:none;width:35px;min-width:20px}.wire small{font-size:10px}.topology .wire:nth-child(6){display:none}.topology .node:last-child{margin-top:16px;width:100%}.card{padding:14px}.card .topology{margin-bottom:15px}.fg-foot{padding:10px}.fg-foot>span{font-size:11px}.login{margin:20px auto;padding:20px}.login h1{font-size:34px}.login-card{padding:22px}.login-options{flex-direction:column}.field{grid-template-columns:1fr;gap:7px}.form-body{padding:18px}.settings{margin:12px}.widget dl{grid-template-columns:1fr 1fr}.tabs{gap:18px;font-size:13px}.result,.confirm{padding:25px}}
