*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{-webkit-font-smoothing:antialiased;width:100%;height:100%;font-family:Ubuntu,Cantarell,Segoe UI,sans-serif;font-size:14px;overflow:hidden}:root{--panel-bg:#2d2d2d;--panel-hover:#3d3d3d;--panel-active:#4a4a4a;--panel-text:#e0e0e0;--window-bg:#303030;--window-header:#3b3b3b;--window-header-focused:#2c2c2c;--window-border:#1a1a1a;--window-text:#e8e8e8;--accent:#15a3d7;--accent-hover:#1bb8f0;--success:#2ecc71;--error:#e74c3c;--warning:#f39c12;--term-bg:#1e1e1e;--term-text:#d4d4d4;--term-green:#4ec9b0;--term-red:#f44747;--term-yellow:#dcdcaa;--term-blue:#569cd6;--term-prompt:#6a9955}.desktop{-webkit-user-select:none;user-select:none;background-color:#2c3e50;background-position:50%;background-size:cover;width:100vw;height:100vh;position:relative;overflow:hidden}.desktop-icons{flex-direction:column;gap:8px;display:flex;position:absolute;top:20px;left:20px}.desktop-icon{cursor:pointer;color:#fff;background:0;border:2px solid #0000;border-radius:6px;flex-direction:column;align-items:center;gap:4px;width:90px;padding:8px 12px;transition:background .15s;display:flex}.desktop-icon:hover{background:#ffffff1f}.desktop-icon:active,.desktop-icon:focus{background:#fff3;border-color:#ffffff4d;outline:0}.desktop-icon-img{filter:drop-shadow(0 1px 3px #00000080);font-size:36px;line-height:1}.desktop-icon-label{text-align:center;text-shadow:0 1px 3px #000c;word-break:break-word;font-size:11px;line-height:1.3}.context-overlay{z-index:9998;position:fixed;inset:0}.context-menu{z-index:9999;background:var(--panel-bg);border:1px solid #555;border-radius:8px;min-width:200px;padding:4px 0;position:fixed;box-shadow:0 4px 16px #0006}.context-item{width:100%;color:var(--panel-text);text-align:left;cursor:pointer;background:0;border:0;padding:8px 16px;font-size:13px;display:block}.context-item:hover{background:var(--accent);color:#fff}.context-item.disabled{opacity:.4;pointer-events:none}.context-divider{background:#555;height:1px;margin:4px 0}.wallpaper-picker-overlay{z-index:10000;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.wallpaper-picker{background:var(--window-bg);width:90%;max-width:680px;color:var(--window-text);border-radius:12px;padding:24px}.wallpaper-picker h3{margin-bottom:16px;font-size:18px}.wallpaper-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px;display:grid}.wallpaper-option{cursor:pointer;background:0;border:3px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:6px;padding:4px;transition:border-color .15s;display:flex}.wallpaper-option img{aspect-ratio:16/10;object-fit:cover;border-radius:4px;width:100%}.wallpaper-option span{color:var(--panel-text);font-size:12px}.wallpaper-option:hover{border-color:var(--accent)}.wallpaper-option.selected{border-color:var(--accent);background:#15a3d726}.wallpaper-close-btn{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:6px;margin:0 auto;padding:8px 24px;font-size:14px;display:block}.wallpaper-close-btn:hover{background:var(--accent-hover)}.linux-window{background:var(--window-bg);border:1px solid var(--window-border);border-radius:10px 10px 8px 8px;flex-direction:column;min-width:300px;min-height:200px;display:flex;overflow:hidden;box-shadow:0 8px 32px #00000059,0 2px 8px #0003}.window-titlebar{background:var(--window-header);cursor:default;flex-shrink:0;justify-content:space-between;align-items:center;height:36px;padding:0 10px;display:flex}.linux-window:focus-within .window-titlebar{background:var(--window-header-focused)}.window-title{color:var(--panel-text);text-align:center;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:600;overflow:hidden}.window-controls{align-items:center;gap:8px;display:flex}.win-btn{cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;padding:0;transition:filter .15s;display:flex}.win-btn svg{opacity:0;transition:opacity .15s}.window-controls:hover .win-btn svg{opacity:1}.win-btn.minimize{background:#f5c542}.win-btn.minimize:hover{filter:brightness(1.2)}.win-btn.maximize{background:#5ac05a}.win-btn.maximize:hover{filter:brightness(1.2)}.win-btn.close{background:#ed6a5e}.win-btn.close:hover{filter:brightness(1.2)}.window-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.taskbar{background:var(--panel-bg);z-index:50000;border-top:1px solid #1a1a1a;align-items:center;height:48px;padding:0 12px;display:flex;position:absolute;bottom:0;left:0;right:0}.taskbar-left{position:relative}.taskbar-activities{color:var(--panel-text);cursor:pointer;background:0;border:0;border-radius:6px;padding:6px 14px;font-size:14px;font-weight:600}.taskbar-activities:hover{background:var(--panel-hover)}.app-launcher{background:var(--panel-bg);z-index:50001;border:1px solid #555;border-radius:10px;flex-direction:column;gap:2px;min-width:220px;margin-bottom:8px;padding:8px;display:flex;position:absolute;bottom:100%;left:0;box-shadow:0 4px 20px #00000080}.launcher-item{color:var(--panel-text);cursor:pointer;background:0;border:0;border-radius:6px;align-items:center;gap:10px;padding:10px 14px;font-size:14px;display:flex}.launcher-item:hover{background:var(--accent);color:#fff}.launcher-icon{font-size:20px}.taskbar-center{flex:1;justify-content:center;gap:4px;padding:0 16px;display:flex;overflow-x:auto}.taskbar-item{color:var(--panel-text);cursor:pointer;white-space:nowrap;background:0;border:0;border-bottom:3px solid #0000;border-radius:4px 4px 0 0;align-items:center;gap:6px;max-width:180px;padding:4px 12px;font-size:12px;display:flex;overflow:hidden}.taskbar-item:hover{background:var(--panel-hover)}.taskbar-item.active{border-bottom-color:var(--accent);background:var(--panel-active)}.taskbar-item.minimized{opacity:.5}.taskbar-item-icon{font-size:16px}.taskbar-item-label{text-overflow:ellipsis;overflow:hidden}.taskbar-right{color:var(--panel-text);align-items:center;gap:10px;font-size:13px;display:flex}.ctf-progress{cursor:default;background:#ffffff1a;border-radius:10px;padding:2px 10px;font-size:12px}.system-tray-item{opacity:.7;font-size:14px}.taskbar-clock{font-variant-numeric:tabular-nums;font-weight:600}.file-browser{height:100%;color:var(--window-text);background:#262626;flex-direction:column;display:flex}.fb-toolbar{background:#333;border-bottom:1px solid #1a1a1a;align-items:center;gap:8px;padding:8px 12px;display:flex}.fb-btn{color:var(--panel-text);cursor:pointer;background:0;border:1px solid #555;border-radius:4px;padding:4px 10px;font-size:14px}.fb-btn:hover:not(:disabled){background:var(--panel-hover)}.fb-btn:disabled{opacity:.3}.fb-breadcrumbs{flex:1;align-items:center;display:flex;overflow-x:auto}.fb-breadcrumb{color:var(--accent);cursor:pointer;background:0;border:0;border-radius:3px;padding:2px 4px;font-size:13px}.fb-breadcrumb:hover{background:#15a3d726;text-decoration:underline}.fb-sep{color:#666;margin:0 2px}.fb-toggle{color:#999;cursor:pointer;white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:flex}.fb-toggle input{cursor:pointer}.fb-content{flex:1;padding:4px 0;overflow:auto}.fb-empty{text-align:center;color:#666;padding:40px}.fb-table{border-collapse:collapse;width:100%;font-size:13px}.fb-table thead th{text-align:left;color:#888;text-transform:uppercase;letter-spacing:.5px;background:#262626;border-bottom:1px solid #3a3a3a;padding:6px 12px;font-size:11px;font-weight:500;position:sticky;top:0}.fb-row{cursor:pointer}.fb-row:hover{background:#ffffff0d}.fb-row.selected{background:#15a3d733}.fb-row.hidden-file .fb-name{opacity:.6}.fb-row td{border-bottom:1px solid #2a2a2a;padding:5px 12px}.fb-icon{width:30px;font-size:16px}.fb-name{font-weight:500}.fb-name.dir{color:var(--term-blue)}.fb-size,.fb-perms,.fb-owner{color:#888;font-family:Fira Code,Consolas,monospace;font-size:12px}.fb-statusbar{color:#888;background:#2a2a2a;border-top:1px solid #1a1a1a;padding:6px 12px;font-size:11px}.terminal{background:var(--term-bg);cursor:text;flex-direction:column;height:100%;font-family:Fira Code,Cascadia Code,Consolas,Monaco,monospace;display:flex}.term-output{flex:1;padding:10px 14px;overflow-y:auto}.term-line pre{white-space:pre-wrap;word-break:break-all;margin:0;font-family:inherit;font-size:13px;line-height:1.5}.term-line.input pre,.term-line.output pre{color:var(--term-text)}.term-line.error pre{color:var(--term-red)}.term-input-line{align-items:center;padding:2px 0;display:flex}.term-prompt{color:var(--term-green);white-space:pre;font-size:13px;font-weight:600}.term-input{color:var(--term-text);caret-color:#fff;background:0;border:0;outline:0;flex:1;font-family:inherit;font-size:13px}.web-browser{background:#f5f5f5;flex-direction:column;height:100%;display:flex}.wb-toolbar{background:#e8e8e8;border-bottom:1px solid #ccc;align-items:center;gap:6px;padding:6px 10px;display:flex}.wb-btn{cursor:pointer;color:#333;background:#ddd;border:1px solid #bbb;border-radius:4px;padding:4px 10px;font-size:14px}.wb-btn:hover{background:#d0d0d0}.wb-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.wb-url{background:#fff;border:1px solid #ccc;border-radius:20px;outline:0;flex:1;padding:6px 12px;font-size:13px}.wb-url:focus{border-color:var(--accent);box-shadow:0 0 0 2px #15a3d733}.wb-content{background:#fff;flex:1;overflow:auto}.wb-page{padding:0}.wb-source{color:#d4d4d4;white-space:pre-wrap;background:#1e1e1e;min-height:100%;margin:0;padding:16px;font-family:Fira Code,Consolas,monospace;font-size:12px}.wb-error{text-align:center;color:#666;padding:60px 20px}.wb-error h2{color:#333;margin-bottom:10px}.wb-error a{color:var(--accent)}.wb-statusbar{color:#888;background:#e8e8e8;border-top:1px solid #ccc;padding:4px 12px;font-size:11px}.text-editor{background:var(--term-bg);height:100%;color:var(--term-text);flex-direction:column;display:flex}.te-toolbar{background:#2a2a2a;border-bottom:1px solid #1a1a1a;justify-content:space-between;align-items:center;padding:6px 12px;display:flex}.te-path{color:var(--accent);font-family:Fira Code,Consolas,monospace;font-size:12px}.te-info{color:#888;font-size:11px}.te-content{flex:1;font-family:Fira Code,Consolas,monospace;font-size:13px;line-height:1.6;display:flex;overflow:auto}.te-gutter{color:#555;text-align:right;-webkit-user-select:none;user-select:none;background:#252525;border-right:1px solid #333;min-width:40px;padding:10px 8px}.te-line-num{font-size:12px}.te-text{white-space:pre-wrap;word-break:break-all;flex:1;margin:0;padding:10px 14px}.ctf-hub{color:#e0e0e0;background:#1a1a2e;height:100%;display:flex}.ctf-sidebar{background:#16213e;border-right:1px solid #0f3460;flex-direction:column;width:250px;display:flex}.ctf-header{text-align:center;border-bottom:1px solid #0f3460;padding:16px}.ctf-logo{margin-bottom:4px;font-size:32px}.ctf-header h2{color:#e94560;margin:4px 0;font-size:16px}.ctf-score{color:#888;background:#ffffff0d;border-radius:12px;margin-top:6px;padding:4px 12px;font-size:13px;display:inline-block}.ctf-challenge-list{flex:1;padding:8px;overflow-y:auto}.ctf-challenge-item{color:#ccc;cursor:pointer;text-align:left;background:0;border:1px solid #0000;border-radius:6px;align-items:center;gap:10px;width:100%;margin-bottom:4px;padding:10px 12px;font-size:12px;display:flex}.ctf-challenge-item:hover{background:#ffffff0d}.ctf-challenge-item.active{background:#e9456026;border-color:#e94560}.ctf-challenge-item.solved{border-color:var(--success)}.ctf-challenge-item.solved .ctf-challenge-title{opacity:.7;text-decoration:line-through}.ctf-status{background:#ffffff1a;border-radius:50%;justify-content:center;align-items:center;min-width:24px;height:24px;font-size:12px;font-weight:700;display:flex}.ctf-challenge-item.solved .ctf-status{background:0;font-size:16px}.ctf-challenge-title{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.ctf-difficulty{color:#f39c12;white-space:nowrap;font-size:10px}.ctf-main{flex:1;padding:24px;overflow-y:auto}.ctf-challenge-header{margin-bottom:16px}.ctf-challenge-header h2{color:#e94560;margin-bottom:4px;font-size:20px}.ctf-difficulty-display{color:#f39c12;font-size:14px}.ctf-description{background:#ffffff0d;border:1px solid #333;border-radius:8px;margin-bottom:20px;padding:16px;line-height:1.6}.ctf-hints{margin-bottom:20px}.ctf-hints h3{color:#888;margin-bottom:10px;font-size:14px}.ctf-hint{background:#f39c121a;border-left:3px solid #f39c12;border-radius:0 6px 6px 0;margin-bottom:8px;padding:10px 14px;font-size:13px;line-height:1.5}.ctf-hint-num{color:#f39c12;font-weight:700}.ctf-hint-btn{color:#f39c12;cursor:pointer;background:0;border:1px dashed #f39c12;border-radius:6px;padding:8px 16px;font-size:13px}.ctf-hint-btn:hover{background:#f39c121a}.ctf-submit{background:#ffffff08;border:1px solid #333;border-radius:8px;padding:16px}.ctf-submit label{color:#ccc;margin-bottom:10px;font-weight:600;display:block}.ctf-submit-row{gap:10px;display:flex}.ctf-submit input{color:#e0e0e0;background:#1a1a2e;border:1px solid #444;border-radius:6px;outline:0;flex:1;padding:10px 14px;font-family:Fira Code,Consolas,monospace;font-size:14px}.ctf-submit input:focus{border-color:#e94560;box-shadow:0 0 0 2px #e9456033}.ctf-submit button{color:#fff;cursor:pointer;background:#e94560;border:0;border-radius:6px;padding:10px 24px;font-size:14px;font-weight:600}.ctf-submit button:hover{background:#d63851}.ctf-feedback{border-radius:6px;margin-top:12px;padding:12px 16px;font-size:13px;line-height:1.5}.ctf-feedback.correct{border:1px solid var(--success);color:#2ecc71;background:#2ecc7126}.ctf-feedback.incorrect{border:1px solid var(--error);color:#e74c3c;background:#e74c3c26}.ctf-solved-banner{border:1px solid var(--success);background:#2ecc711a;border-radius:8px;align-items:flex-start;gap:14px;margin:20px 0;padding:20px;display:flex}.ctf-solved-icon{font-size:28px}.ctf-solved-banner strong{color:var(--success);font-size:16px}.ctf-solved-banner p{color:#aaa;margin-top:8px;line-height:1.6}.ctf-congrats{text-align:center;padding:40px 20px}.ctf-congrats-icon{margin-bottom:16px;font-size:64px}.ctf-congrats h2{color:#f39c12;margin-bottom:12px;font-size:28px}.ctf-congrats p{color:#bbb;margin-bottom:8px}.ctf-congrats ul{margin:20px 0;padding:0;list-style:none}.ctf-congrats ul li{color:var(--success);padding:6px 0}.ctf-congrats ul li:before{content:"✓ ";color:var(--success);font-weight:700}.ctf-congrats-sub{color:#888;margin-top:20px;font-style:italic}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0}::-webkit-scrollbar-thumb{background:#555;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#777}