@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-base: #08080f;--bg-surface: #0e0e1c;--bg-card: #121220;--bg-hover: #18182c;--bg-input: #0e0e1c;--border-subtle: #16162a;--border-default: #1e1e38;--border-bright: #2c2c50;--border-focus: #6366f1;--primary: #6366f1;--primary-hover: #5254e0;--primary-light: #818cf8;--primary-glow: rgba(99, 102, 241, .18);--primary-glow-strong: rgba(99, 102, 241, .35);--accent: #22d3ee;--accent-glow: rgba(34, 211, 238, .15);--green: #34d399;--green-bg: rgba(52, 211, 153, .12);--yellow: #fbbf24;--yellow-bg: rgba(251, 191, 36, .12);--red: #f87171;--red-bg: rgba(248, 113, 113, .12);--purple: #a78bfa;--purple-bg: rgba(167, 139, 250, .12);--text-1: #f1f5f9;--text-2: #94a3b8;--text-3: #475569;--gradient-primary: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--gradient-accent: linear-gradient(135deg, #06b6d4 0%, #22d3ee 100%);--gradient-hero: linear-gradient(135deg, #0f0f20 0%, #13132a 50%, #0f0f20 100%);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 16px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .6);--shadow-glow: 0 0 20px rgba(99, 102, 241, .2)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-base);color:var(--text-1);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{min-height:100vh}button{cursor:pointer;border:none;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;font-family:"Inter",inherit;transition:all .2s ease}button:disabled{opacity:.4;cursor:not-allowed}input,select,textarea{padding:10px 14px;border:1px solid var(--border-default);border-radius:8px;font-size:14px;font-family:"Inter",inherit;background:var(--bg-input);color:var(--text-1);transition:border-color .2s,box-shadow .2s;width:100%}input::placeholder{color:var(--text-3)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--primary-glow)}label{color:var(--text-2);font-size:13px;font-weight:500}.error{color:var(--red);font-size:13px;margin-top:8px}.success{color:var(--green);font-size:13px;margin-top:8px}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-bright);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--text-3)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.badge-primary{background:var(--primary-glow);color:var(--primary-light)}.badge-green{background:var(--green-bg);color:var(--green)}.badge-yellow{background:var(--yellow-bg);color:var(--yellow)}.badge-red{background:var(--red-bg);color:var(--red)}.badge-purple{background:var(--purple-bg);color:var(--purple)}.login-page[data-v-c7ea8ec2]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-base);position:relative;overflow:hidden;padding:24px}.bg-grid[data-v-c7ea8ec2]{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--border-subtle) 1px,transparent 1px),linear-gradient(90deg,var(--border-subtle) 1px,transparent 1px);background-size:48px 48px;opacity:.6}.bg-glow[data-v-c7ea8ec2]{position:absolute;border-radius:50%;filter:blur(100px);pointer-events:none}.bg-glow-1[data-v-c7ea8ec2]{width:500px;height:500px;background:#6366f11f;top:-150px;left:-150px}.bg-glow-2[data-v-c7ea8ec2]{width:400px;height:400px;background:#22d3ee14;bottom:-100px;right:-100px}.login-container[data-v-c7ea8ec2]{position:relative;z-index:1;width:100%;max-width:400px;display:flex;flex-direction:column;gap:24px}.brand[data-v-c7ea8ec2]{display:flex;align-items:center;gap:12px;justify-content:center}.brand-logo[data-v-c7ea8ec2]{width:42px;height:42px;border-radius:12px;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px var(--primary-glow-strong)}.brand-text[data-v-c7ea8ec2]{display:flex;flex-direction:column}.brand-name[data-v-c7ea8ec2]{color:var(--text-1);font-size:20px;font-weight:800;letter-spacing:-.5px;line-height:1.1}.brand-tagline[data-v-c7ea8ec2]{color:var(--text-3);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:1px}.login-card[data-v-c7ea8ec2]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:16px;padding:32px;box-shadow:var(--shadow-lg),0 0 0 1px var(--border-subtle)}.card-header[data-v-c7ea8ec2]{margin-bottom:28px}.card-header h1[data-v-c7ea8ec2]{color:var(--text-1);font-size:22px;font-weight:700;margin-bottom:6px;letter-spacing:-.4px}.card-header p[data-v-c7ea8ec2]{color:var(--text-3);font-size:14px}.login-form[data-v-c7ea8ec2]{display:flex;flex-direction:column;gap:18px}.form-group[data-v-c7ea8ec2]{display:flex;flex-direction:column;gap:7px}.input-wrapper[data-v-c7ea8ec2]{position:relative}.input-icon[data-v-c7ea8ec2]{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-3);display:flex;align-items:center;pointer-events:none}.input-wrapper input[data-v-c7ea8ec2]{padding-left:38px;background:var(--bg-surface);border-color:var(--border-default);font-size:14px}.input-wrapper input[data-v-c7ea8ec2]:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.btn-login[data-v-c7ea8ec2]{width:100%;padding:12px;background:var(--gradient-primary);color:#fff;font-size:15px;font-weight:600;border-radius:10px;border:none;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:4px;box-shadow:0 4px 14px var(--primary-glow-strong);letter-spacing:-.2px}.btn-login[data-v-c7ea8ec2]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px var(--primary-glow-strong)}.btn-login[data-v-c7ea8ec2]:disabled{opacity:.6;transform:none;cursor:not-allowed}.btn-spinner[data-v-c7ea8ec2]{width:15px;height:15px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin-c7ea8ec2 .7s linear infinite}@keyframes spin-c7ea8ec2{to{transform:rotate(360deg)}}.login-error[data-v-c7ea8ec2]{display:flex;align-items:center;gap:7px;background:var(--red-bg);color:var(--red);border:1px solid rgba(248,113,113,.25);padding:10px 12px;border-radius:8px;font-size:13px;font-weight:500}.features[data-v-c7ea8ec2]{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--border-subtle)}.feature[data-v-c7ea8ec2]{display:flex;align-items:center;gap:5px;color:var(--text-3);font-size:12px;font-weight:500}.feature-icon[data-v-c7ea8ec2]{font-size:13px}.feature-sep[data-v-c7ea8ec2]{width:1px;height:16px;background:var(--border-default)}/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.terminal-container[data-v-2cfdf51d]{width:100%;height:100%;background:#1a1a1a;padding:10px;box-sizing:border-box}.terminal[data-v-2cfdf51d]{width:100%;height:100%}.sandbox-page[data-v-97278478]{display:flex;flex-direction:column;height:100vh;background:var(--bg-base);font-family:Inter,sans-serif}.page-header[data-v-97278478]{display:flex;justify-content:space-between;align-items:center;padding:0 20px;height:60px;background:var(--bg-surface);border-bottom:1px solid var(--border-default);flex-shrink:0}.page-header h1[data-v-97278478]{color:var(--text-1);font-size:16px;font-weight:700;letter-spacing:-.3px;display:flex;align-items:center;gap:10px}.page-header h1[data-v-97278478]:before{content:"";display:inline-block;width:28px;height:28px;border-radius:7px;background:var(--gradient-primary);flex-shrink:0}.header-actions[data-v-97278478]{display:flex;align-items:center;gap:10px}.user-info[data-v-97278478]{color:var(--text-3);font-size:13px;font-weight:500;padding:0 6px}.btn-link[data-v-97278478]{color:var(--primary-light);text-decoration:none;font-size:13px;font-weight:500;padding:7px 14px;border-radius:7px;border:1px solid var(--border-default);transition:all .2s}.btn-link[data-v-97278478]:hover{border-color:var(--border-bright);background:var(--primary-glow)}.btn-secondary[data-v-97278478]{font-size:13px;font-weight:500;padding:7px 14px;border-radius:7px;background:var(--red-bg);color:var(--red);border:1px solid rgba(248,113,113,.25);cursor:pointer;transition:all .2s}.btn-secondary[data-v-97278478]:hover{filter:brightness(1.15)}.main-content[data-v-97278478]{display:flex;flex:1;overflow:hidden}.sidebar[data-v-97278478]{width:320px;flex-shrink:0;background:var(--bg-surface);border-right:1px solid var(--border-default);display:flex;flex-direction:column;overflow-y:auto}.sidebar-header[data-v-97278478]{padding:16px 18px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.sidebar-header h2[data-v-97278478]{font-size:13px;font-weight:600;color:var(--text-1);text-transform:uppercase;letter-spacing:.6px}.sandbox-info[data-v-97278478]{padding:16px 18px;border-bottom:1px solid var(--border-subtle)}.sandbox-header[data-v-97278478]{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.sandbox-type[data-v-97278478]{display:flex;align-items:center;gap:10px}.type-icon[data-v-97278478]{font-size:22px}.type-name[data-v-97278478]{font-size:14px;font-weight:600;color:var(--text-1)}.sandbox-status[data-v-97278478]{font-size:10px;padding:3px 10px;border-radius:20px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.status-running[data-v-97278478]{background:var(--green-bg);color:var(--green)}.status-stopped[data-v-97278478]{background:var(--red-bg);color:var(--red)}.status-creating[data-v-97278478]{background:var(--yellow-bg);color:var(--yellow)}.sandbox-meta[data-v-97278478]{margin-bottom:14px;padding:10px 12px;background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:8px}.meta-item[data-v-97278478]{display:flex;justify-content:space-between;align-items:center;font-size:12px}.meta-label[data-v-97278478]{color:var(--text-3)}.meta-value[data-v-97278478]{color:var(--primary-light);font-weight:600}.sandbox-actions[data-v-97278478]{display:flex;gap:8px;flex-wrap:wrap}.btn-action[data-v-97278478]{flex:1;padding:8px 10px;font-size:12px;border-radius:7px;font-weight:600;min-width:72px;border:none;cursor:pointer;transition:all .2s}.btn-start[data-v-97278478]{background:var(--green-bg);color:var(--green);border:1px solid rgba(52,211,153,.25)}.btn-stop[data-v-97278478]{background:var(--yellow-bg);color:var(--yellow);border:1px solid rgba(251,191,36,.25)}.btn-connect[data-v-97278478]{background:var(--gradient-primary);color:#fff;box-shadow:0 2px 8px var(--primary-glow-strong)}.btn-delete[data-v-97278478]{background:var(--red-bg);color:var(--red);border:1px solid rgba(248,113,113,.25);flex:0 0 auto}.btn-start[data-v-97278478]:hover{background:#34d39933}.btn-stop[data-v-97278478]:hover{background:#fbbf2433}.btn-connect[data-v-97278478]:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn-delete[data-v-97278478]:hover{background:#f8717133}.create-sandbox[data-v-97278478]{padding:16px 18px;flex:1}.create-sandbox h3[data-v-97278478]{font-size:14px;font-weight:700;color:var(--text-1);margin-bottom:4px}.subtitle[data-v-97278478]{font-size:12px;color:var(--text-3);margin-bottom:18px}.category[data-v-97278478]{margin-bottom:16px}.category-header[data-v-97278478]{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;padding:8px 10px;border-radius:7px;cursor:pointer;transition:background .2s;-webkit-user-select:none;user-select:none}.category-header[data-v-97278478]:hover{background:var(--bg-hover)}.category-info[data-v-97278478]{display:flex;align-items:center;gap:8px}.category-icon[data-v-97278478]{font-size:16px}.category-title[data-v-97278478]{font-size:12px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.6px}.category-toggle[data-v-97278478]{color:var(--primary-light);font-size:10px}.category-options[data-v-97278478]{display:flex;flex-direction:column;gap:6px}.env-option[data-v-97278478]{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-card);border:1px solid var(--border-default);border-radius:10px;text-align:left;cursor:pointer;transition:all .2s;width:100%}.env-option[data-v-97278478]:not(:disabled):hover{border-color:var(--border-bright);background:var(--bg-hover);transform:translate(2px)}.env-option[data-v-97278478]:disabled{opacity:.4;cursor:not-allowed}.env-icon[data-v-97278478]{font-size:22px;flex-shrink:0}.env-details[data-v-97278478]{flex:1;min-width:0}.env-name[data-v-97278478]{font-size:13px;font-weight:600;color:var(--text-1);margin-bottom:2px}.env-desc[data-v-97278478]{font-size:11px;color:var(--text-3)}.loading[data-v-97278478]{text-align:center;padding:20px;color:var(--primary-light);font-size:13px}.terminal-area[data-v-97278478]{flex:1;display:flex;flex-direction:column;background:var(--bg-base);overflow:hidden}.no-container[data-v-97278478]{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100%;color:var(--text-3);text-align:center;padding:40px;gap:12px}.no-container h2[data-v-97278478]{color:var(--text-2);font-size:20px;font-weight:600}.no-container p[data-v-97278478]{font-size:14px;max-width:320px;line-height:1.6}.error[data-v-97278478]{margin:10px 14px;padding:10px 14px;background:var(--red-bg);border:1px solid rgba(248,113,113,.3);border-radius:8px;font-size:12px;color:var(--red)}.success[data-v-97278478]{margin:10px 14px;padding:10px 14px;background:var(--green-bg);border:1px solid rgba(52,211,153,.3);border-radius:8px;font-size:12px;color:var(--green)}.sidebar[data-v-823e65a4]{position:fixed;left:0;top:0;bottom:0;width:240px;background:var(--bg-surface);border-right:1px solid var(--border-default);display:flex;flex-direction:column;transition:width .3s cubic-bezier(.4,0,.2,1);z-index:1000}.sidebar.collapsed[data-v-823e65a4]{width:64px}.sidebar-header[data-v-823e65a4]{padding:16px;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;min-height:64px}.logo[data-v-823e65a4]{display:flex;align-items:center;gap:10px;overflow:hidden;min-width:0}.logo-mark[data-v-823e65a4]{width:34px;height:34px;border-radius:9px;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px var(--primary-glow-strong)}.logo-text[data-v-823e65a4]{display:flex;flex-direction:column;overflow:hidden;min-width:0}.logo-name[data-v-823e65a4]{color:var(--text-1);font-size:15px;font-weight:700;white-space:nowrap;letter-spacing:-.3px}.logo-tag[data-v-823e65a4]{color:var(--text-3);font-size:10px;font-weight:500;white-space:nowrap;text-transform:uppercase;letter-spacing:.8px}.collapse-btn[data-v-823e65a4]{background:transparent;border:1px solid var(--border-default);color:var(--text-3);width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;padding:0;flex-shrink:0}.collapse-btn[data-v-823e65a4]:hover{border-color:var(--border-bright);color:var(--text-2);background:var(--bg-hover)}.sidebar-nav[data-v-823e65a4]{flex:1;padding:12px 8px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.nav-section-label[data-v-823e65a4]{color:var(--text-3);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;padding:8px 10px 4px}.nav-section-admin[data-v-823e65a4]{margin-top:8px}.nav-divider[data-v-823e65a4]{height:1px;background:var(--border-subtle);margin:8px}.nav-item[data-v-823e65a4]{display:flex;align-items:center;gap:10px;padding:10px;color:var(--text-2);text-decoration:none;transition:all .15s ease;border-radius:8px;position:relative;font-size:14px;font-weight:500}.nav-item[data-v-823e65a4]:hover{background:var(--bg-hover);color:var(--text-1)}.nav-item.active[data-v-823e65a4]{background:var(--primary-glow);color:var(--primary-light)}.nav-item.active .nav-icon[data-v-823e65a4]{color:var(--primary)}.nav-item-admin.active[data-v-823e65a4]{background:var(--purple-bg);color:var(--purple)}.nav-item-admin.active .nav-icon[data-v-823e65a4]{color:var(--purple)}.nav-item-admin[data-v-823e65a4]:hover{background:var(--bg-hover);color:var(--text-1)}.nav-icon[data-v-823e65a4]{width:18px;height:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:inherit}.nav-label[data-v-823e65a4]{flex:1;white-space:nowrap}.active-dot[data-v-823e65a4]{width:5px;height:5px;border-radius:50%;background:var(--primary);flex-shrink:0}.sidebar-footer[data-v-823e65a4]{padding:8px 8px 16px;border-top:1px solid var(--border-subtle)}.logout-btn[data-v-823e65a4]{display:flex;align-items:center;gap:10px;padding:10px;width:100%;background:transparent;border:none;color:var(--text-3);cursor:pointer;transition:all .15s;border-radius:8px;font-size:14px;font-weight:500;text-align:left}.logout-btn[data-v-823e65a4]:hover{background:var(--red-bg);color:var(--red)}.sidebar.collapsed .nav-item[data-v-823e65a4],.sidebar.collapsed .logout-btn[data-v-823e65a4]{justify-content:center;padding:10px}.sidebar.collapsed .nav-icon[data-v-823e65a4]{width:20px;height:20px}.profile-menu[data-v-aae53d56]{position:relative}.profile-button[data-v-aae53d56]{display:flex;align-items:center;gap:7px;background:transparent;border:1px solid var(--border-default);cursor:pointer;padding:5px 10px 5px 5px;border-radius:50px;transition:all .2s}.profile-button[data-v-aae53d56]:hover{border-color:var(--border-bright);background:var(--bg-hover)}.avatar[data-v-aae53d56]{width:30px;height:30px;border-radius:50%;overflow:hidden;flex-shrink:0}.avatar-img[data-v-aae53d56]{width:100%;height:100%;object-fit:cover}.avatar-placeholder[data-v-aae53d56]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--gradient-primary);color:#fff;font-size:13px;font-weight:700}.chevron[data-v-aae53d56]{color:var(--text-3);transition:transform .2s;flex-shrink:0}.chevron.open[data-v-aae53d56]{transform:rotate(180deg)}.dropdown-menu[data-v-aae53d56]{position:absolute;top:calc(100% + 8px);right:0;width:250px;background:var(--bg-card);border:1px solid var(--border-default);border-radius:12px;box-shadow:var(--shadow-lg);overflow:hidden;z-index:1000}.dropdown-header[data-v-aae53d56]{padding:16px;display:flex;align-items:flex-start;gap:12px;background:var(--primary-glow)}.avatar-lg[data-v-aae53d56]{width:40px;height:40px;border-radius:10px;overflow:hidden;flex-shrink:0}.user-info[data-v-aae53d56]{display:flex;flex-direction:column;min-width:0}.user-name[data-v-aae53d56]{color:var(--text-1);font-size:14px;font-weight:600}.user-email[data-v-aae53d56]{color:var(--text-3);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-divider[data-v-aae53d56]{height:1px;background:var(--border-subtle);margin:4px 0}.dropdown-item[data-v-aae53d56]{display:flex;align-items:center;gap:10px;padding:10px 16px;color:var(--text-2);text-decoration:none;background:transparent;border:none;width:100%;text-align:left;cursor:pointer;transition:all .15s;font-size:14px;font-family:inherit;font-weight:500}.dropdown-item[data-v-aae53d56]:hover{background:var(--bg-hover);color:var(--text-1)}.dropdown-item.logout[data-v-aae53d56]{color:var(--red)}.dropdown-item.logout[data-v-aae53d56]:hover{background:var(--red-bg)}.dropdown-enter-active[data-v-aae53d56],.dropdown-leave-active[data-v-aae53d56]{transition:all .18s ease}.dropdown-enter-from[data-v-aae53d56],.dropdown-leave-to[data-v-aae53d56]{opacity:0;transform:translateY(-8px) scale(.97)}.main-layout[data-v-3a56d6bb]{display:flex;min-height:100vh;background:var(--bg-base)}.content-wrapper[data-v-3a56d6bb]{flex:1;margin-left:240px;display:flex;flex-direction:column;transition:margin-left .3s cubic-bezier(.4,0,.2,1);min-width:0}.content-wrapper.sidebar-collapsed[data-v-3a56d6bb]{margin-left:64px}.top-header[data-v-3a56d6bb]{background:var(--bg-surface);border-bottom:1px solid var(--border-default);padding:0 28px;height:64px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100;gap:16px}.header-left[data-v-3a56d6bb]{flex:1;min-width:0}.breadcrumb[data-v-3a56d6bb]{display:flex;align-items:center;gap:8px}.page-title[data-v-3a56d6bb]{color:var(--text-1);font-size:18px;font-weight:600;white-space:nowrap;letter-spacing:-.3px}.header-right[data-v-3a56d6bb]{display:flex;align-items:center;gap:16px;flex-shrink:0}.main-content[data-v-3a56d6bb]{flex:1;padding:28px;overflow-y:auto}@media (max-width: 768px){.content-wrapper[data-v-3a56d6bb]{margin-left:64px}.top-header[data-v-3a56d6bb]{padding:0 16px}.main-content[data-v-3a56d6bb]{padding:16px}}.progress-card[data-v-94752359]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:14px;padding:22px;transition:all .2s ease;display:flex;flex-direction:column;gap:10px;position:relative;overflow:hidden}.progress-card[data-v-94752359]:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;opacity:0;transition:opacity .2s}.card-primary[data-v-94752359]:before{background:var(--gradient-primary)}.card-green[data-v-94752359]:before{background:linear-gradient(90deg,var(--green),#10b981)}.card-yellow[data-v-94752359]:before{background:linear-gradient(90deg,var(--yellow),#f59e0b)}.card-accent[data-v-94752359]:before{background:var(--gradient-accent)}.progress-card[data-v-94752359]:hover{border-color:var(--border-bright);transform:translateY(-2px);box-shadow:var(--shadow-md)}.progress-card[data-v-94752359]:hover:before{opacity:1}.card-top[data-v-94752359]{display:flex;align-items:center;gap:10px}.card-icon-wrap[data-v-94752359]{width:34px;height:34px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}.card-primary .card-icon-wrap[data-v-94752359]{background:var(--primary-glow)}.card-green .card-icon-wrap[data-v-94752359]{background:var(--green-bg)}.card-yellow .card-icon-wrap[data-v-94752359]{background:var(--yellow-bg)}.card-accent .card-icon-wrap[data-v-94752359]{background:var(--accent-glow)}.card-title[data-v-94752359]{color:var(--text-2);font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.card-value[data-v-94752359]{color:var(--text-1);font-size:30px;font-weight:700;letter-spacing:-1px;line-height:1}.card-total[data-v-94752359]{color:var(--text-3);font-size:18px;font-weight:500;letter-spacing:-.5px}.card-subtitle[data-v-94752359]{color:var(--text-3);font-size:13px}.progress-track[data-v-94752359]{width:100%;height:5px;background:var(--bg-hover);border-radius:10px;overflow:hidden}.card-primary .progress-fill[data-v-94752359]{background:var(--gradient-primary)}.card-green .progress-fill[data-v-94752359]{background:linear-gradient(90deg,var(--green),#10b981)}.card-yellow .progress-fill[data-v-94752359]{background:linear-gradient(90deg,var(--yellow),#f59e0b)}.card-accent .progress-fill[data-v-94752359]{background:var(--gradient-accent)}.progress-fill[data-v-94752359]{height:100%;transition:width .6s cubic-bezier(.4,0,.2,1);border-radius:10px}.card-meta[data-v-94752359]{color:var(--text-3);font-size:12px}.activity-timeline[data-v-389d970c]{max-height:500px;overflow-y:auto}.no-activity[data-v-389d970c]{color:#999;text-align:center;padding:40px 20px;font-size:14px}.timeline[data-v-389d970c]{display:flex;flex-direction:column;gap:16px}.activity-item[data-v-389d970c]{display:flex;gap:16px;align-items:start;padding:12px;background:#1a1a1a;border-radius:6px;transition:all .2s}.activity-item[data-v-389d970c]:hover{background:#242424}.activity-icon[data-v-389d970c]{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:20px;flex-shrink:0}.icon-sandbox_created[data-v-389d970c]{background:#4a9eff33}.icon-exam_started[data-v-389d970c]{background:#fb33}.icon-exam_completed[data-v-389d970c]{background:#4f43}.icon-lesson_completed[data-v-389d970c]{background:#8a63ff33}.activity-content[data-v-389d970c]{flex:1;display:flex;flex-direction:column;gap:4px}.activity-description[data-v-389d970c]{color:#e0e0e0;font-size:14px;line-height:1.5}.activity-time[data-v-389d970c]{color:#999;font-size:12px}.activity-timeline[data-v-389d970c]::-webkit-scrollbar{width:8px}.activity-timeline[data-v-389d970c]::-webkit-scrollbar-track{background:#1a1a1a;border-radius:4px}.activity-timeline[data-v-389d970c]::-webkit-scrollbar-thumb{background:#444;border-radius:4px}.activity-timeline[data-v-389d970c]::-webkit-scrollbar-thumb:hover{background:#555}.performance-chart[data-v-579b61e1]{min-height:200px}.no-data[data-v-579b61e1]{color:#999;text-align:center;padding:60px 20px;font-size:14px;background:#1a1a1a;border-radius:6px}.chart-container[data-v-579b61e1]{margin-bottom:30px}.chart-container[data-v-579b61e1]:last-child{margin-bottom:0}.chart-container h3[data-v-579b61e1]{color:#e0e0e0;font-size:16px;font-weight:500;margin-bottom:16px}canvas[data-v-579b61e1]{max-height:300px}.dash-loading[data-v-8fcef14c]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;color:var(--text-3)}.spinner[data-v-8fcef14c]{width:36px;height:36px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-8fcef14c .9s linear infinite}@keyframes spin-8fcef14c{to{transform:rotate(360deg)}}.dash-error[data-v-8fcef14c]{text-align:center;padding:40px;color:var(--red)}.dashboard[data-v-8fcef14c]{display:flex;flex-direction:column;gap:24px}.stats-grid[data-v-8fcef14c]{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.dash-grid[data-v-8fcef14c]{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 1024px){.dash-grid[data-v-8fcef14c]{grid-template-columns:1fr}}.dash-card[data-v-8fcef14c]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:14px;padding:22px}.dash-card-header[data-v-8fcef14c]{margin-bottom:18px}.dash-card-header h2[data-v-8fcef14c]{color:var(--text-1);font-size:15px;font-weight:600;letter-spacing:-.2px}.page-loading[data-v-8d7660ec]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;color:var(--text-3)}.spinner[data-v-8d7660ec]{width:36px;height:36px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-8d7660ec .9s linear infinite}@keyframes spin-8d7660ec{to{transform:rotate(360deg)}}.page-error[data-v-8d7660ec]{text-align:center;padding:40px;color:var(--red)}.empty-state[data-v-8d7660ec]{text-align:center;padding:80px 20px;color:var(--text-3)}.empty-icon[data-v-8d7660ec]{font-size:52px;margin-bottom:14px}.exams-grid[data-v-8d7660ec]{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}@media (max-width: 768px){.exams-grid[data-v-8d7660ec]{grid-template-columns:1fr}}.exam-card[data-v-8d7660ec]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:16px;transition:all .2s ease;position:relative;overflow:hidden}.exam-card[data-v-8d7660ec]:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--gradient-primary);opacity:0;transition:opacity .2s}.exam-card[data-v-8d7660ec]:hover{border-color:var(--border-bright);transform:translateY(-3px);box-shadow:var(--shadow-md)}.exam-card[data-v-8d7660ec]:hover:before{opacity:1}.exam-card-dimmed[data-v-8d7660ec]{opacity:.45;pointer-events:none}.exam-card-header[data-v-8d7660ec]{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.exam-card-header h3[data-v-8d7660ec]{color:var(--text-1);font-size:16px;font-weight:600;flex:1;line-height:1.4}.badge-muted[data-v-8d7660ec]{background:#64748b26;color:var(--text-3)}.badge-yellow[data-v-8d7660ec]{background:var(--yellow-bg);color:var(--yellow)}.badge-green[data-v-8d7660ec]{background:var(--green-bg);color:var(--green)}.badge-red[data-v-8d7660ec]{background:var(--red-bg);color:var(--red)}.exam-description[data-v-8d7660ec]{color:var(--text-2);font-size:13px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.exam-meta-grid[data-v-8d7660ec]{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:var(--bg-surface);border-radius:10px;padding:14px}.exam-meta-item[data-v-8d7660ec]{display:flex;flex-direction:column;gap:3px}.meta-label[data-v-8d7660ec]{color:var(--text-3);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.meta-value[data-v-8d7660ec]{color:var(--text-1);font-size:15px;font-weight:600}.exam-actions[data-v-8d7660ec]{display:flex;gap:10px;margin-top:4px}.btn-secondary[data-v-8d7660ec]{flex:1;padding:10px;background:var(--bg-hover);border:1px solid var(--border-default);color:var(--text-2);border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.btn-secondary[data-v-8d7660ec]:hover:not(:disabled){border-color:var(--border-bright);color:var(--text-1)}.btn-secondary[data-v-8d7660ec]:disabled{opacity:.4;cursor:not-allowed}.btn-primary[data-v-8d7660ec]{flex:1;padding:10px;background:var(--gradient-primary);color:#fff;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;border:none;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 2px 8px var(--primary-glow-strong)}.btn-primary[data-v-8d7660ec]:hover:not(:disabled){transform:translateY(-1px)}.btn-primary[data-v-8d7660ec]:disabled{background:var(--yellow-bg);color:var(--yellow);box-shadow:none;cursor:not-allowed}.btn-spinner[data-v-8d7660ec]{width:13px;height:13px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin-8d7660ec .7s linear infinite}.page-loading[data-v-eb554213]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;color:var(--text-3)}.spinner[data-v-eb554213]{width:36px;height:36px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-eb554213 .9s linear infinite}@keyframes spin-eb554213{to{transform:rotate(360deg)}}.page-error[data-v-eb554213]{text-align:center;padding:40px;color:var(--red)}.exam-content[data-v-eb554213]{display:flex;flex-direction:column;gap:20px}.content-header[data-v-eb554213]{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap}.content-header-left[data-v-eb554213]{display:flex;flex-direction:column;gap:8px}.back-link[data-v-eb554213]{display:inline-flex;align-items:center;gap:5px;color:var(--text-3);text-decoration:none;font-size:13px;font-weight:500;transition:color .2s}.back-link[data-v-eb554213]:hover{color:var(--primary-light)}.content-header h1[data-v-eb554213]{color:var(--text-1);font-size:22px;font-weight:700;letter-spacing:-.4px}.btn-start[data-v-eb554213]{padding:12px 28px;background:var(--gradient-primary);color:#fff;border-radius:10px;font-size:14px;font-weight:600;border:none;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px;box-shadow:0 4px 14px var(--primary-glow-strong);white-space:nowrap}.btn-start[data-v-eb554213]:hover:not(:disabled){transform:translateY(-1px)}.btn-start[data-v-eb554213]:disabled{background:var(--yellow-bg);color:var(--yellow);box-shadow:none;cursor:not-allowed}.btn-spinner[data-v-eb554213]{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin-eb554213 .7s linear infinite}.section-card[data-v-eb554213]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:14px;padding:24px;display:flex;flex-direction:column;gap:18px}.section-card h2[data-v-eb554213]{color:var(--text-1);font-size:16px;font-weight:600;letter-spacing:-.2px}.exam-description[data-v-eb554213]{color:var(--text-2);font-size:14px;line-height:1.7}.meta-row[data-v-eb554213]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;padding-top:4px}.meta-item[data-v-eb554213]{background:var(--bg-surface);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:4px}.meta-label[data-v-eb554213]{color:var(--text-3);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.6px}.meta-value[data-v-eb554213]{color:var(--text-1);font-size:18px;font-weight:700}.tasks-list[data-v-eb554213]{display:flex;flex-direction:column;gap:10px}.task-card[data-v-eb554213]{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;padding:16px;display:flex;flex-direction:column;gap:8px}.task-top[data-v-eb554213]{display:flex;justify-content:space-between;align-items:center}.task-num[data-v-eb554213]{color:var(--primary-light);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px}.task-pts[data-v-eb554213]{background:var(--yellow-bg);color:var(--yellow);padding:2px 10px;border-radius:20px;font-size:12px;font-weight:600}.task-card h3[data-v-eb554213]{color:var(--text-1);font-size:14px;font-weight:600}.task-card p[data-v-eb554213]{color:var(--text-2);font-size:13px;line-height:1.6;white-space:pre-wrap}.empty-tasks[data-v-eb554213]{color:var(--text-3);text-align:center;padding:32px}.exam-attempt[data-v-04a9cff2]{height:100vh;display:flex;flex-direction:column;background:var(--bg-base)}.page-loading[data-v-04a9cff2]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:16px;color:var(--text-3)}.spinner[data-v-04a9cff2]{width:36px;height:36px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-04a9cff2 .9s linear infinite}@keyframes spin-04a9cff2{to{transform:rotate(360deg)}}.error-state[data-v-04a9cff2]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:20px}.error-msg[data-v-04a9cff2]{color:var(--red);font-size:16px}.btn-back[data-v-04a9cff2]{color:var(--primary-light);text-decoration:none;padding:10px 22px;border:1px solid var(--border-default);border-radius:8px;font-size:14px;font-weight:500;transition:all .2s}.btn-back[data-v-04a9cff2]:hover{border-color:var(--primary);background:var(--primary-glow)}.exam-wrapper[data-v-04a9cff2]{display:flex;flex-direction:column;height:100vh}.exam-header[data-v-04a9cff2]{background:var(--bg-surface);border-bottom:1px solid var(--border-default);padding:0 20px;height:60px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;gap:20px}.exam-header-left[data-v-04a9cff2]{display:flex;align-items:center;gap:12px;min-width:0}.exam-brand[data-v-04a9cff2]{width:28px;height:28px;border-radius:7px;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.exam-header h1[data-v-04a9cff2]{color:var(--text-1);font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-pill[data-v-04a9cff2]{background:var(--yellow-bg);color:var(--yellow);padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap;flex-shrink:0}.exam-header-right[data-v-04a9cff2]{display:flex;align-items:center;gap:14px;flex-shrink:0}.timer[data-v-04a9cff2]{display:flex;align-items:center;gap:6px;color:var(--text-1);font-size:18px;font-weight:700;font-family:JetBrains Mono,Courier New,monospace;background:var(--bg-card);border:1px solid var(--border-default);padding:6px 14px;border-radius:8px;letter-spacing:1px}.timer-warn[data-v-04a9cff2]{color:var(--red);border-color:var(--red-bg);background:var(--red-bg);animation:pulse-04a9cff2 1s ease-in-out infinite}@keyframes pulse-04a9cff2{0%,to{opacity:1}50%{opacity:.6}}.btn-submit[data-v-04a9cff2]{padding:8px 20px;background:var(--green);color:#0a1a12;border-radius:8px;font-size:13px;font-weight:700;border:none;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px;box-shadow:0 2px 10px #34d3994d}.btn-submit[data-v-04a9cff2]:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.1)}.btn-submit[data-v-04a9cff2]:disabled{opacity:.5;cursor:not-allowed}.btn-spinner[data-v-04a9cff2]{width:13px;height:13px;border:2px solid rgba(10,26,18,.4);border-top-color:#0a1a12;border-radius:50%;animation:spin-04a9cff2 .7s linear infinite}.exam-main[data-v-04a9cff2]{display:flex;flex:1;overflow:hidden}.terminal-pane[data-v-04a9cff2]{flex:1;overflow:hidden}.tasks-pane[data-v-04a9cff2]{width:320px;flex-shrink:0;background:var(--bg-surface);border-left:1px solid var(--border-default);display:flex;flex-direction:column;overflow:hidden}.tasks-pane-header[data-v-04a9cff2]{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.tasks-pane-header h2[data-v-04a9cff2]{color:var(--text-1);font-size:14px;font-weight:600}.tasks-count[data-v-04a9cff2]{background:var(--primary-glow);color:var(--primary-light);padding:2px 8px;border-radius:20px;font-size:11px;font-weight:700}.tasks-list[data-v-04a9cff2]{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}.task-item[data-v-04a9cff2]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:7px}.task-item-header[data-v-04a9cff2]{display:flex;justify-content:space-between;align-items:center}.task-num[data-v-04a9cff2]{width:24px;height:24px;border-radius:6px;background:var(--primary-glow);color:var(--primary-light);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.task-pts[data-v-04a9cff2]{background:var(--yellow-bg);color:var(--yellow);padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600}.task-item h3[data-v-04a9cff2]{color:var(--text-1);font-size:13px;font-weight:600}.task-item p[data-v-04a9cff2]{color:var(--text-2);font-size:12px;line-height:1.6;white-space:pre-wrap}.results-page[data-v-8b809339]{min-height:100vh;background:var(--bg-base);padding:40px 20px}.page-loading[data-v-8b809339]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px;color:var(--text-3)}.spinner[data-v-8b809339]{width:36px;height:36px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-8b809339 .9s linear infinite}@keyframes spin-8b809339{to{transform:rotate(360deg)}}.error-state[data-v-8b809339]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:20px}.error-msg[data-v-8b809339]{color:var(--red);font-size:16px}.btn-outline[data-v-8b809339]{color:var(--primary-light);text-decoration:none;padding:10px 22px;border:1px solid var(--border-default);border-radius:8px;font-size:14px;font-weight:500}.results-wrap[data-v-8b809339]{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.score-hero[data-v-8b809339]{border-radius:16px;padding:40px 32px;text-align:center;border:1px solid var(--border-default);display:flex;flex-direction:column;align-items:center;gap:16px}.hero-pass[data-v-8b809339]{background:linear-gradient(135deg,#34d39914,#10b9810a);border-color:#34d39940}.hero-fail[data-v-8b809339]{background:var(--bg-card)}.hero-icon[data-v-8b809339]{font-size:56px;line-height:1}.score-hero h1[data-v-8b809339]{color:var(--text-1);font-size:24px;font-weight:700;letter-spacing:-.5px}.score-display[data-v-8b809339]{display:flex;align-items:baseline;gap:8px}.score-num[data-v-8b809339]{color:var(--text-1);font-size:52px;font-weight:800;letter-spacing:-2px}.score-sep[data-v-8b809339]{color:var(--text-3);font-size:28px;font-weight:400}.score-max[data-v-8b809339]{color:var(--text-2);font-size:28px;font-weight:600}.score-pct[data-v-8b809339]{font-size:22px;font-weight:700;padding:4px 14px;border-radius:8px;margin-left:8px}.pct-pass[data-v-8b809339]{background:var(--green-bg);color:var(--green)}.pct-fail[data-v-8b809339]{background:var(--red-bg);color:var(--red)}.hero-meta[data-v-8b809339]{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;width:100%;max-width:560px}.hero-meta-item[data-v-8b809339]{background:var(--bg-surface);border-radius:10px;padding:12px 16px;text-align:left;display:flex;flex-direction:column;gap:4px}.meta-label[data-v-8b809339]{color:var(--text-3);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.6px}.meta-value[data-v-8b809339]{color:var(--text-1);font-size:14px;font-weight:600}.breakdown-card[data-v-8b809339]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:14px;padding:24px;display:flex;flex-direction:column;gap:16px}.breakdown-card h2[data-v-8b809339]{color:var(--text-1);font-size:16px;font-weight:600}.tasks-list[data-v-8b809339]{display:flex;flex-direction:column;gap:10px}.task-result[data-v-8b809339]{border-radius:10px;padding:16px;border:1px solid;display:flex;flex-direction:column;gap:12px}.task-pass[data-v-8b809339]{background:#34d3990a;border-color:#34d39933}.task-fail[data-v-8b809339]{background:#f871710a;border-color:#f8717133}.task-result-header[data-v-8b809339]{display:flex;justify-content:space-between;align-items:flex-start}.task-left[data-v-8b809339]{display:flex;align-items:center;gap:12px}.task-badge[data-v-8b809339]{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;flex-shrink:0}.badge-pass[data-v-8b809339]{background:var(--green-bg);color:var(--green)}.badge-fail[data-v-8b809339]{background:var(--red-bg);color:var(--red)}.task-label[data-v-8b809339]{color:var(--text-3);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.6px}.task-title[data-v-8b809339]{color:var(--text-1);font-size:14px;font-weight:600;margin-top:2px}.task-score[data-v-8b809339]{display:flex;align-items:baseline;gap:4px}.pts-earned[data-v-8b809339]{color:var(--text-1);font-size:20px;font-weight:700}.pts-sep[data-v-8b809339]{color:var(--text-3);font-size:14px}.pts-total[data-v-8b809339]{color:var(--text-2);font-size:16px;font-weight:500}.pts-label[data-v-8b809339]{color:var(--text-3);font-size:12px}.verif-output[data-v-8b809339]{display:flex;flex-direction:column;gap:6px}.verif-label[data-v-8b809339]{color:var(--text-3);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px}.verif-output pre[data-v-8b809339]{background:var(--bg-base);color:var(--text-2);padding:12px 14px;border-radius:8px;font-size:12px;font-family:JetBrains Mono,Courier New,monospace;overflow-x:auto;white-space:pre-wrap;word-wrap:break-word;border:1px solid var(--border-subtle);line-height:1.6}.results-actions[data-v-8b809339]{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.btn-primary[data-v-8b809339]{padding:11px 24px;background:var(--gradient-primary);color:#fff;border-radius:9px;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s;box-shadow:0 2px 10px var(--primary-glow-strong)}.btn-primary[data-v-8b809339]:hover{transform:translateY(-1px)}.btn-secondary[data-v-8b809339]{padding:11px 24px;background:var(--bg-card);border:1px solid var(--border-default);color:var(--text-2);border-radius:9px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s}.btn-secondary[data-v-8b809339]:hover{border-color:var(--border-bright);color:var(--text-1)}.btn-retry[data-v-8b809339]{padding:11px 24px;background:var(--yellow-bg);color:var(--yellow);border:1px solid rgba(251,191,36,.3);border-radius:9px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-retry[data-v-8b809339]:hover{filter:brightness(1.1)}.admin-dashboard[data-v-e28954fa]{min-height:100vh;background:var(--bg-base);font-family:Inter,sans-serif}.admin-header[data-v-e28954fa]{background:var(--bg-surface);border-bottom:1px solid var(--border-default);padding:0;height:60px;display:flex;align-items:center;position:sticky;top:0;z-index:100}.header-content[data-v-e28954fa]{max-width:1400px;margin:0 auto;padding:0 30px;display:flex;justify-content:space-between;align-items:center;width:100%}.admin-header h1[data-v-e28954fa]{color:var(--text-1);font-size:17px;font-weight:700;letter-spacing:-.3px}.header-actions[data-v-e28954fa]{display:flex;gap:10px}.btn-secondary[data-v-e28954fa]{padding:8px 18px;border-radius:8px;font-size:13px;font-weight:500;text-decoration:none;transition:all .2s;background:var(--bg-card);color:var(--text-2);border:1px solid var(--border-default);cursor:pointer}.btn-secondary[data-v-e28954fa]:hover{border-color:var(--border-bright);color:var(--text-1)}.btn-logout[data-v-e28954fa]{padding:8px 18px;border-radius:8px;font-size:13px;font-weight:500;background:var(--red-bg);color:var(--red);border:1px solid rgba(248,113,113,.25);cursor:pointer;transition:all .2s}.btn-logout[data-v-e28954fa]:hover{filter:brightness(1.15)}.admin-nav[data-v-e28954fa]{background:var(--bg-surface);border-bottom:1px solid var(--border-default);display:flex;gap:2px;padding:0 24px;overflow-x:auto}.tab-btn[data-v-e28954fa]{padding:14px 20px;background:transparent;color:var(--text-3);border:none;border-bottom:2px solid transparent;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s;white-space:nowrap}.tab-btn[data-v-e28954fa]:hover{color:var(--text-1);background:var(--bg-hover)}.tab-btn.active[data-v-e28954fa]{color:var(--primary-light);border-bottom-color:var(--primary)}.admin-main[data-v-e28954fa]{max-width:1400px;margin:0 auto;padding:28px 30px}.tab-content[data-v-e28954fa]{animation:fadeIn-e28954fa .25s}@keyframes fadeIn-e28954fa{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.loading[data-v-e28954fa]{text-align:center;padding:60px;color:var(--text-3);font-size:14px}.error[data-v-e28954fa]{text-align:center;padding:40px;color:var(--red);font-size:14px}.stats-grid[data-v-e28954fa]{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.stat-card[data-v-e28954fa]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:14px;padding:28px 24px;text-align:center;transition:all .2s}.stat-card[data-v-e28954fa]:hover{border-color:var(--border-bright);transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-icon[data-v-e28954fa]{font-size:36px;margin-bottom:14px}.stat-value[data-v-e28954fa]{color:var(--primary-light);font-size:38px;font-weight:800;letter-spacing:-1.5px;margin-bottom:6px}.stat-label[data-v-e28954fa]{color:var(--text-3);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px}.section-header[data-v-e28954fa]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:12px}.section-header h2[data-v-e28954fa]{color:var(--text-1);font-size:17px;font-weight:700;letter-spacing:-.3px}.btn-primary[data-v-e28954fa]{background:var(--gradient-primary);color:#fff;padding:9px 20px;border-radius:8px;font-size:13px;font-weight:600;text-decoration:none;border:none;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:6px;box-shadow:0 2px 10px var(--primary-glow-strong)}.btn-primary[data-v-e28954fa]:hover{transform:translateY(-1px);filter:brightness(1.1)}.btn-primary[data-v-e28954fa]:disabled{opacity:.5;cursor:not-allowed;transform:none}.users-table[data-v-e28954fa],.attempts-table[data-v-e28954fa]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:12px;overflow:hidden}table[data-v-e28954fa]{width:100%;border-collapse:collapse}thead[data-v-e28954fa]{background:var(--bg-surface)}th[data-v-e28954fa]{color:var(--text-3);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;padding:12px 16px;text-align:left}td[data-v-e28954fa]{color:var(--text-2);font-size:13px;padding:12px 16px;border-top:1px solid var(--border-subtle);vertical-align:middle}tbody tr:hover td[data-v-e28954fa]{background:var(--bg-hover)}.role-select[data-v-e28954fa],.module-select[data-v-e28954fa]{background:var(--bg-surface);color:var(--text-1);border:1px solid var(--border-default);padding:6px 12px;border-radius:6px;font-size:13px;cursor:pointer;min-width:180px}.role-select[data-v-e28954fa]:focus,.module-select[data-v-e28954fa]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.status-badge[data-v-e28954fa]{padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px}.status-in_progress[data-v-e28954fa]{background:var(--yellow-bg);color:var(--yellow)}.status-graded[data-v-e28954fa]{background:var(--green-bg);color:var(--green)}.status-submitted[data-v-e28954fa]{background:var(--primary-glow);color:var(--primary-light)}.status-running[data-v-e28954fa]{background:var(--green-bg);color:var(--green)}.status-stopped[data-v-e28954fa]{background:var(--red-bg);color:var(--red)}.status-active[data-v-e28954fa]{background:var(--green-bg);color:var(--green)}.status-inactive[data-v-e28954fa]{background:var(--red-bg);color:var(--red)}.action-buttons[data-v-e28954fa]{display:flex;gap:6px;align-items:center}.btn-view-small[data-v-e28954fa],.btn-secondary-small[data-v-e28954fa],.btn-edit-small[data-v-e28954fa],.btn-delete-small[data-v-e28954fa],.btn-view-code[data-v-e28954fa],.btn-edit[data-v-e28954fa],.btn-icon[data-v-e28954fa]{padding:5px 11px;border-radius:6px;font-size:12px;font-weight:500;border:none;cursor:pointer;transition:all .2s}.btn-view-small[data-v-e28954fa],.btn-secondary-small[data-v-e28954fa],.btn-view-code[data-v-e28954fa]{background:var(--primary-glow);color:var(--primary-light);border:1px solid rgba(99,102,241,.25)}.btn-view-small[data-v-e28954fa]:hover,.btn-secondary-small[data-v-e28954fa]:hover,.btn-view-code[data-v-e28954fa]:hover{background:#6366f133}.btn-edit-small[data-v-e28954fa],.btn-edit[data-v-e28954fa]{background:#fbbf241f;color:var(--yellow);border:1px solid rgba(251,191,36,.25)}.btn-edit-small[data-v-e28954fa]:hover,.btn-edit[data-v-e28954fa]:hover{background:#fbbf2438}.btn-delete-small[data-v-e28954fa]{background:var(--red-bg);color:var(--red);border:1px solid rgba(248,113,113,.25)}.btn-delete-small[data-v-e28954fa]:hover{background:#f8717138}.btn-delete-small[data-v-e28954fa]:disabled{opacity:.3;cursor:not-allowed}.btn-icon[data-v-e28954fa]{background:#6366f11f;color:#a5b4fc}.btn-icon[data-v-e28954fa]:hover{background:#6366f140}.modal-header[data-v-e28954fa]{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.modal-header h3[data-v-e28954fa]{margin:0}.btn-close[data-v-e28954fa]{background:none;border:none;font-size:18px;cursor:pointer;color:#94a3b8;padding:2px 6px;border-radius:4px}.btn-close[data-v-e28954fa]:hover{background:#ffffff1a;color:#fff}.module-checklist[data-v-e28954fa]{display:flex;flex-direction:column;gap:10px;padding:16px 0;max-height:320px;overflow-y:auto}.module-check-item[data-v-e28954fa]{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer}.module-check-item input[type=checkbox][data-v-e28954fa]{width:16px;height:16px;cursor:pointer}.btn-action[data-v-e28954fa]{background:none;border:none;padding:6px 8px;cursor:pointer;border-radius:6px;transition:background .2s;font-size:15px;color:var(--text-3)}.btn-action[data-v-e28954fa]:hover{background:var(--bg-hover);color:var(--text-1)}.btn-stop[data-v-e28954fa]:hover{background:var(--yellow-bg);color:var(--yellow)}.btn-delete[data-v-e28954fa]:hover{background:var(--red-bg);color:var(--red)}.btn-action[data-v-e28954fa]:disabled{opacity:.3;cursor:not-allowed}.btn-action[data-v-e28954fa]:disabled:hover{background:none}.modal-overlay[data-v-e28954fa]{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content[data-v-e28954fa]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:16px;padding:28px;width:100%;max-width:520px;box-shadow:var(--shadow-md)}.modal-large[data-v-e28954fa]{max-width:820px;max-height:88vh;overflow-y:auto}.modal-content h3[data-v-e28954fa]{color:var(--text-1);font-size:18px;font-weight:700;margin-bottom:22px;letter-spacing:-.3px}.modal-actions[data-v-e28954fa]{display:flex;gap:10px;justify-content:flex-end;margin-top:22px;padding-top:16px;border-top:1px solid var(--border-subtle)}.form-group[data-v-e28954fa]{margin-bottom:16px}.form-group label[data-v-e28954fa]{display:block;color:var(--text-2);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:7px}.form-group input[data-v-e28954fa],.form-group select[data-v-e28954fa],.form-group textarea[data-v-e28954fa]{width:100%;background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-1);padding:10px 12px;border-radius:8px;font-size:13px;transition:border-color .2s;box-sizing:border-box}.form-group input[data-v-e28954fa]:focus,.form-group select[data-v-e28954fa]:focus,.form-group textarea[data-v-e28954fa]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.info-message[data-v-e28954fa]{background:var(--primary-glow);border:1px solid rgba(99,102,241,.3);color:var(--primary-light);padding:14px 18px;border-radius:10px;font-size:13px}.tasks-table[data-v-e28954fa],.images-table[data-v-e28954fa],.containers-table[data-v-e28954fa],.sandboxes-table[data-v-e28954fa],.templates-table[data-v-e28954fa]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:12px;overflow:hidden}.task-meta[data-v-e28954fa]{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;padding:16px;margin:14px 0}.task-meta p[data-v-e28954fa]{color:var(--text-2);margin:7px 0;font-size:13px}.task-description[data-v-e28954fa]{color:var(--text-3);font-style:italic}.verification-code[data-v-e28954fa]{margin:18px 0}.verification-code h4[data-v-e28954fa]{color:var(--text-1);font-size:14px;font-weight:600;margin-bottom:10px}.verification-code pre[data-v-e28954fa]{background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:10px;padding:16px;overflow-x:auto;max-height:420px}.verification-code code[data-v-e28954fa]{color:var(--text-2);font-family:JetBrains Mono,Courier New,monospace;font-size:12px;line-height:1.7}.sub-tabs[data-v-e28954fa]{display:flex;gap:2px;margin-bottom:22px;border-bottom:1px solid var(--border-subtle)}.sub-tab-btn[data-v-e28954fa]{padding:10px 18px;background:transparent;color:var(--text-3);border:none;border-bottom:2px solid transparent;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s;margin-bottom:-1px}.sub-tab-btn[data-v-e28954fa]:hover{color:var(--text-1);background:var(--bg-hover)}.sub-tab-btn.active[data-v-e28954fa]{color:var(--primary-light);border-bottom-color:var(--primary)}.sub-tab-content[data-v-e28954fa]{animation:fadeIn-e28954fa .25s}.section-header .header-actions[data-v-e28954fa]{display:flex;gap:10px;align-items:center}.markdown-path[data-v-e28954fa]{font-family:JetBrains Mono,Courier New,monospace;font-size:11px;color:var(--text-3);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.container-summary[data-v-e28954fa]{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:20px;padding:14px 18px;background:var(--bg-card);border:1px solid var(--border-default);border-radius:10px}.summary-item[data-v-e28954fa]{display:flex;gap:8px;align-items:center}.summary-label[data-v-e28954fa]{color:var(--text-3);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.summary-value[data-v-e28954fa]{color:var(--primary-light);font-size:18px;font-weight:700}.container-name[data-v-e28954fa]{display:flex;align-items:center;gap:8px}.container-name code[data-v-e28954fa]{background:var(--bg-surface);padding:3px 8px;border-radius:5px;font-size:11px;color:var(--primary-light);font-family:JetBrains Mono,monospace;border:1px solid var(--border-subtle)}.warning-badge[data-v-e28954fa]{font-size:14px;cursor:help}.type-badge[data-v-e28954fa]{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;text-transform:capitalize}.type-sandbox[data-v-e28954fa]{background:var(--primary-glow);color:var(--primary-light)}.type-exam[data-v-e28954fa]{background:var(--yellow-bg);color:var(--yellow)}.type-laboratory[data-v-e28954fa]{background:#a78bfa1f;color:#a78bfa}.related-name[data-v-e28954fa]{color:var(--text-1);font-size:13px}.sandbox-type[data-v-e28954fa]{color:var(--text-3);font-size:12px;font-style:italic}.text-muted[data-v-e28954fa]{color:var(--text-3)}.fingerprint[data-v-e28954fa]{font-family:JetBrains Mono,Courier New,monospace;font-size:11px;color:var(--primary-light);background:var(--bg-surface);padding:3px 7px;border-radius:5px;border:1px solid var(--border-subtle);display:inline-block}.aliases-list[data-v-e28954fa]{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.alias-badge[data-v-e28954fa]{display:inline-block;padding:3px 8px;border-radius:5px;font-size:11px;font-weight:500;background:var(--bg-hover);color:var(--text-2);border:1px solid var(--border-subtle)}.alias-badge.platform-alias[data-v-e28954fa]{background:var(--primary-glow);color:var(--primary-light);border-color:#6366f14d}.image-description[data-v-e28954fa]{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2);font-size:12px}.activity-details[data-v-e28954fa]{display:flex;flex-direction:column;gap:20px;margin:16px 0}.activity-section h4[data-v-e28954fa]{color:var(--text-1);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.activity-card[data-v-e28954fa]{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;padding:14px}.activity-card p[data-v-e28954fa]{color:var(--text-2);margin:6px 0;font-size:13px}.activity-card strong[data-v-e28954fa]{color:var(--text-3);margin-right:6px}.no-activity[data-v-e28954fa]{color:var(--text-3);font-style:italic;padding:14px;text-align:center;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;font-size:13px}.templates-table .image-cell[data-v-e28954fa]{font-size:11px;color:var(--text-3);max-width:150px;overflow:hidden;text-overflow:ellipsis}.templates-table .checkbox[data-v-e28954fa]{cursor:pointer;width:17px;height:17px;accent-color:var(--primary)}.empty-state[data-v-e28954fa]{text-align:center;padding:60px 20px;color:var(--text-3)}.empty-state p[data-v-e28954fa]{margin:0;font-size:14px}.loading[data-v-4afc51f1],.error[data-v-4afc51f1]{text-align:center;padding:40px;font-size:16px}.error[data-v-4afc51f1]{color:#f44}.profile-content[data-v-4afc51f1]{display:flex;flex-direction:column;gap:30px}.avatar-section[data-v-4afc51f1],.info-section[data-v-4afc51f1],.password-section[data-v-4afc51f1]{background:#2a2a2a;border:1px solid #444;border-radius:8px;padding:30px}.avatar-section h2[data-v-4afc51f1],.info-section h2[data-v-4afc51f1],.password-section h2[data-v-4afc51f1]{color:#e0e0e0;font-size:18px;font-weight:600;margin-bottom:20px}.avatar-container[data-v-4afc51f1]{display:flex;gap:30px;align-items:center}.avatar-preview[data-v-4afc51f1]{flex-shrink:0}.avatar-img[data-v-4afc51f1],.avatar-placeholder[data-v-4afc51f1]{width:120px;height:120px;border-radius:50%;object-fit:cover;border:3px solid #444}.avatar-placeholder[data-v-4afc51f1]{display:flex;align-items:center;justify-content:center;background:#4a9eff;color:#fff;font-size:48px;font-weight:600}.avatar-actions[data-v-4afc51f1]{display:flex;flex-direction:column;gap:12px}.btn-primary[data-v-4afc51f1],.btn-delete[data-v-4afc51f1]{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary[data-v-4afc51f1]{background:#4a9eff;color:#fff;border:none;text-align:center}.btn-delete[data-v-4afc51f1]{background:transparent;color:#f44;border:1px solid #ff4444}.btn-primary[data-v-4afc51f1]:hover{background:#3d8fe8}.btn-delete[data-v-4afc51f1]:hover{background:#ff44441a}.avatar-hint[data-v-4afc51f1]{color:#999;font-size:12px;margin:0}.form-grid[data-v-4afc51f1]{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}@media (max-width: 768px){.form-grid[data-v-4afc51f1]{grid-template-columns:1fr}.avatar-container[data-v-4afc51f1]{flex-direction:column;align-items:flex-start}}.form-group[data-v-4afc51f1]{display:flex;flex-direction:column;gap:8px}.form-group label[data-v-4afc51f1]{color:#999;font-size:14px;font-weight:500}.form-group input[data-v-4afc51f1],.form-group select[data-v-4afc51f1]{background:#1a1a1a;border:1px solid #444;color:#e0e0e0;padding:12px;border-radius:6px;font-size:14px}.form-group input[data-v-4afc51f1]:focus{outline:none;border-color:#4a9eff}.input-disabled[data-v-4afc51f1]{opacity:.6;cursor:not-allowed}.field-hint[data-v-4afc51f1]{color:#666;font-size:12px;margin:0}.form-actions[data-v-4afc51f1]{display:flex;justify-content:flex-start;gap:12px}.form-actions .btn-primary[data-v-4afc51f1]{padding:12px 30px}.form-actions .btn-primary[data-v-4afc51f1]:disabled{opacity:.5;cursor:not-allowed}.success-message[data-v-4afc51f1],.error-message[data-v-4afc51f1]{padding:16px;border-radius:6px;font-size:14px;text-align:center}.success-message[data-v-4afc51f1]{background:#44ff441a;border:1px solid #44ff44;color:#4f4}.error-message[data-v-4afc51f1]{background:#ff44441a;border:1px solid #ff4444;color:#f44}.page-loading[data-v-b75af47f]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;color:var(--text-3)}.spinner[data-v-b75af47f]{width:36px;height:36px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-b75af47f .9s linear infinite}@keyframes spin-b75af47f{to{transform:rotate(360deg)}}.page-error[data-v-b75af47f]{text-align:center;padding:40px;color:var(--red)}.lesson-content[data-v-b75af47f]{display:flex;flex-direction:column;gap:20px}.filter-bar[data-v-b75af47f]{display:flex;align-items:center;gap:12px;background:var(--bg-card);border:1px solid var(--border-default);border-radius:12px;padding:14px 20px}.filter-bar label[data-v-b75af47f]{color:var(--text-2);font-size:13px;font-weight:500;white-space:nowrap}.filter-select[data-v-b75af47f]{background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-1);padding:8px 14px;border-radius:8px;font-size:14px;min-width:220px;width:auto;cursor:pointer}.filter-select[data-v-b75af47f]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.progress-banner[data-v-b75af47f]{display:flex;align-items:center;gap:16px;background:var(--bg-card);border:1px solid var(--border-default);border-radius:12px;padding:14px 20px}.progress-banner-info[data-v-b75af47f]{display:flex;flex-direction:column;gap:2px;min-width:140px}.progress-banner-title[data-v-b75af47f]{color:var(--text-2);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.progress-banner-count[data-v-b75af47f]{color:var(--text-1);font-size:15px;font-weight:600}.progress-track[data-v-b75af47f]{flex:1;height:6px;background:var(--bg-hover);border-radius:10px;overflow:hidden}.progress-fill[data-v-b75af47f]{height:100%;background:var(--gradient-primary);border-radius:10px;transition:width .5s ease}.progress-pct[data-v-b75af47f]{color:var(--primary-light);font-size:13px;font-weight:600;min-width:38px;text-align:right}.empty-state[data-v-b75af47f]{text-align:center;padding:60px 20px;color:var(--text-3)}.empty-icon[data-v-b75af47f]{font-size:48px;margin-bottom:12px}.lessons-grid[data-v-b75af47f]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}@media (max-width: 768px){.lessons-grid[data-v-b75af47f]{grid-template-columns:1fr}}.lesson-card[data-v-b75af47f]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:14px;padding:22px;text-decoration:none;color:inherit;transition:all .2s ease;display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden}.lesson-card[data-v-b75af47f]:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--gradient-primary);opacity:0;transition:opacity .2s}.lesson-card[data-v-b75af47f]:hover{border-color:var(--border-bright);transform:translateY(-3px);box-shadow:var(--shadow-md)}.lesson-card[data-v-b75af47f]:hover:before{opacity:1}.lesson-card-top[data-v-b75af47f]{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.lesson-card h3[data-v-b75af47f]{color:var(--text-1);font-size:16px;font-weight:600;margin:0;flex:1;line-height:1.4}.lesson-meta[data-v-b75af47f]{display:flex;gap:8px;flex-wrap:wrap}.meta-chip[data-v-b75af47f]{display:inline-flex;align-items:center;gap:4px;background:var(--bg-hover);color:var(--text-3);padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.lesson-card-footer[data-v-b75af47f]{display:flex;justify-content:flex-end;padding-top:10px;border-top:1px solid var(--border-subtle)}.card-link[data-v-b75af47f]{display:inline-flex;align-items:center;gap:4px;color:var(--primary-light);font-size:13px;font-weight:500}.lesson-card:hover .card-link[data-v-b75af47f]{text-decoration:underline}.loading[data-v-aef43f83],.error[data-v-aef43f83]{text-align:center;padding:40px;font-size:16px}.error[data-v-aef43f83]{color:#f44}.back-link[data-v-aef43f83]{margin-bottom:20px}.btn-back[data-v-aef43f83]{background:#444;color:#e0e0e0;padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s;display:inline-block}.btn-back[data-v-aef43f83]:hover{background:#555}.lesson-container[data-v-aef43f83]{display:flex;flex-direction:column;gap:30px}.lesson-info-bar[data-v-aef43f83]{background:#2a2a2a;border:1px solid #444;border-radius:8px;padding:20px;display:flex;gap:30px;flex-wrap:wrap}.info-item[data-v-aef43f83]{display:flex;flex-direction:column;gap:4px}.info-label[data-v-aef43f83]{color:#999;font-size:12px;text-transform:uppercase;font-weight:500}.info-value[data-v-aef43f83]{color:#e0e0e0;font-size:14px;font-weight:500}.status-completed[data-v-aef43f83]{color:#4f4;font-size:14px;font-weight:500}.status-incomplete[data-v-aef43f83]{color:#999;font-size:14px}.completed-date[data-v-aef43f83]{color:#999;font-size:12px;font-weight:400;margin-left:4px}.lesson-content[data-v-aef43f83]{background:#2a2a2a;border:1px solid #444;border-radius:8px;padding:40px}.markdown-content[data-v-aef43f83]{color:#e0e0e0;line-height:1.8;font-size:16px}.markdown-content[data-v-aef43f83] h1{color:#e0e0e0;font-size:32px;font-weight:700;margin:32px 0 16px;padding-bottom:12px;border-bottom:2px solid #444}.markdown-content[data-v-aef43f83] h1:first-child{margin-top:0}.markdown-content[data-v-aef43f83] h2{color:#e0e0e0;font-size:24px;font-weight:600;margin:28px 0 14px}.markdown-content[data-v-aef43f83] h3{color:#e0e0e0;font-size:20px;font-weight:600;margin:24px 0 12px}.markdown-content[data-v-aef43f83] p{margin:16px 0;color:#ccc}.markdown-content[data-v-aef43f83] ul,.markdown-content[data-v-aef43f83] ol{margin:16px 0;padding-left:24px;color:#ccc}.markdown-content[data-v-aef43f83] li{margin:8px 0}.markdown-content[data-v-aef43f83] code{background:#1a1a1a;color:#4a9eff;padding:2px 6px;border-radius:4px;font-family:Courier New,monospace;font-size:14px}.markdown-content[data-v-aef43f83] pre{background:#1a1a1a;border:1px solid #333;border-radius:6px;padding:16px;overflow-x:auto;margin:16px 0}.markdown-content[data-v-aef43f83] pre code{background:none;color:#e0e0e0;padding:0}.markdown-content[data-v-aef43f83] blockquote{border-left:4px solid #4a9eff;padding-left:16px;margin:16px 0;color:#999;font-style:italic}.markdown-content[data-v-aef43f83] strong{color:#e0e0e0;font-weight:600}.markdown-content[data-v-aef43f83] a{color:#4a9eff;text-decoration:none}.markdown-content[data-v-aef43f83] a:hover{text-decoration:underline}.lesson-actions[data-v-aef43f83]{display:flex;justify-content:center;padding:20px 0}.btn-complete[data-v-aef43f83]{background:#4f4;color:#1a1a1a;padding:16px 40px;border-radius:8px;font-size:16px;font-weight:600;border:none;cursor:pointer;transition:all .2s}.btn-complete[data-v-aef43f83]:hover{background:#3ddd3d;transform:translateY(-2px)}.btn-complete[data-v-aef43f83]:disabled{opacity:.5;cursor:not-allowed;transform:none}.completion-message[data-v-aef43f83]{background:#44ff441a;border:1px solid #44ff44;color:#4f4;padding:16px 32px;border-radius:8px;font-size:16px;font-weight:500}.success-message[data-v-aef43f83],.error-message[data-v-aef43f83]{padding:16px;border-radius:6px;font-size:14px;text-align:center}.success-message[data-v-aef43f83]{background:#44ff441a;border:1px solid #44ff44;color:#4f4}.error-message[data-v-aef43f83]{background:#ff44441a;border:1px solid #ff4444;color:#f44}@media (max-width: 768px){.lesson-content[data-v-aef43f83]{padding:24px}.lesson-info-bar[data-v-aef43f83]{flex-direction:column;gap:16px}}.loading[data-v-58ee0007],.error[data-v-58ee0007]{text-align:center;padding:40px;font-size:16px}.error[data-v-58ee0007]{color:#f44}.modules-content[data-v-58ee0007]{display:flex;flex-direction:column;gap:30px}.page-header[data-v-58ee0007]{text-align:center;margin-bottom:20px}.page-header h1[data-v-58ee0007]{color:#e0e0e0;font-size:32px;font-weight:700;margin-bottom:8px}.page-header p[data-v-58ee0007]{color:#999;font-size:16px}.empty-state[data-v-58ee0007]{text-align:center;padding:60px 20px;color:#999;font-size:16px}.modules-grid[data-v-58ee0007]{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:24px}@media (max-width: 768px){.modules-grid[data-v-58ee0007]{grid-template-columns:1fr}}.module-card[data-v-58ee0007]{background:#2a2a2a;border:1px solid #444;border-radius:12px;padding:32px;text-decoration:none;color:inherit;transition:all .3s;display:flex;flex-direction:column;gap:16px;position:relative;overflow:hidden}.module-card[data-v-58ee0007]:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#4a9eff,#4f4);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.module-card[data-v-58ee0007]:hover:before{transform:scaleX(1)}.module-card[data-v-58ee0007]:hover{border-color:#4a9eff;transform:translateY(-4px);box-shadow:0 8px 24px #4a9eff26}.module-icon[data-v-58ee0007]{font-size:64px;text-align:center;margin-bottom:8px}.module-card h2[data-v-58ee0007]{color:#e0e0e0;font-size:24px;font-weight:600;margin:0;text-align:center}.module-description[data-v-58ee0007]{color:#999;font-size:14px;text-align:center;margin:0;line-height:1.6}.module-stats[data-v-58ee0007]{display:flex;justify-content:space-around;padding:16px 0;border-top:1px solid #333;border-bottom:1px solid #333;margin:8px 0}.stat[data-v-58ee0007]{display:flex;flex-direction:column;align-items:center;gap:4px}.stat-label[data-v-58ee0007]{color:#999;font-size:12px;text-transform:uppercase;letter-spacing:.5px}.stat-value[data-v-58ee0007]{color:#4a9eff;font-size:18px;font-weight:700}.module-footer[data-v-58ee0007]{display:flex;justify-content:center;padding-top:8px}.btn-start[data-v-58ee0007]{color:#4a9eff;font-size:16px;font-weight:600;transition:all .2s}.module-card:hover .btn-start[data-v-58ee0007]{color:#4f4}.lesson-viewer[data-v-8ab99a72]{display:flex;height:calc(100vh - 60px);overflow:hidden}.lesson-sidebar[data-v-8ab99a72]{width:320px;background:#2a2a2a;border-right:1px solid #444;overflow-y:auto;flex-shrink:0;transition:transform .3s ease}.sidebar-header[data-v-8ab99a72]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #444;position:sticky;top:0;background:#2a2a2a;z-index:10}.back-link[data-v-8ab99a72]{color:#4a9eff;text-decoration:none;font-size:14px;font-weight:500}.back-link[data-v-8ab99a72]:hover{text-decoration:underline}.sidebar-toggle[data-v-8ab99a72]{display:none;background:transparent;border:none;color:#e0e0e0;font-size:20px;cursor:pointer;padding:4px 8px}.module-info[data-v-8ab99a72]{padding:20px;text-align:center;border-bottom:1px solid #444}.module-icon-small[data-v-8ab99a72]{font-size:48px;margin-bottom:8px}.module-info h2[data-v-8ab99a72]{color:#e0e0e0;font-size:18px;font-weight:600;margin:0}.lesson-nav[data-v-8ab99a72]{padding:12px 0}.section[data-v-8ab99a72]{margin-bottom:8px}.section-header-container[data-v-8ab99a72]{display:flex;align-items:center;gap:8px}.section-header[data-v-8ab99a72]{flex:1;display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:transparent;border:none;color:#e0e0e0;font-size:14px;font-weight:600;text-align:left;cursor:pointer;transition:background .2s}.section-header[data-v-8ab99a72]:hover{background:#4a9eff1a}.section-arrow[data-v-8ab99a72]{color:#999;font-size:12px}.btn-laboratory[data-v-8ab99a72]{flex-shrink:0;padding:8px 12px;background:#4a9eff33;border:1px solid rgba(74,158,255,.4);border-radius:6px;color:#4a9eff;font-size:16px;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px}.btn-laboratory[data-v-8ab99a72]:hover{background:#4a9eff4d;border-color:#4a9eff}.btn-laboratory.lab-in-progress[data-v-8ab99a72]{background:#fb33;border-color:#fb36;color:#fb3}.btn-laboratory.lab-in-progress[data-v-8ab99a72]:hover{background:#ffbb334d;border-color:#fb3}.btn-laboratory.lab-completed[data-v-8ab99a72]{background:#4f43;border-color:#4f46;color:#4f4}.btn-laboratory.lab-completed[data-v-8ab99a72]:hover{background:#44ff444d;border-color:#4f4}.btn-laboratory .status-badge[data-v-8ab99a72]{font-size:10px;font-weight:600}.btn-laboratory[data-v-8ab99a72]:disabled{opacity:.7;cursor:not-allowed}.btn-spinner[data-v-8ab99a72]{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin-8ab99a72 .7s linear infinite;flex-shrink:0}.themes-list[data-v-8ab99a72]{display:flex;flex-direction:column}.theme-item[data-v-8ab99a72]{display:flex;align-items:center;gap:12px;padding:10px 20px 10px 40px;color:#999;text-decoration:none;font-size:14px;transition:all .2s;border-left:2px solid transparent}.theme-item[data-v-8ab99a72]:hover{background:#4a9eff1a;color:#e0e0e0}.theme-item.theme-active[data-v-8ab99a72]{background:#4a9eff26;color:#4a9eff;border-left-color:#4a9eff;font-weight:500}.theme-status[data-v-8ab99a72]{flex-shrink:0;width:16px;color:#4f4}.theme-title[data-v-8ab99a72]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.theme-duration[data-v-8ab99a72]{flex-shrink:0;font-size:11px;color:#666}.lesson-main[data-v-8ab99a72]{flex:1;overflow-y:auto;background:#1a1a1a}.loading[data-v-8ab99a72],.error[data-v-8ab99a72],.empty-state[data-v-8ab99a72]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:#999}.spinner[data-v-8ab99a72]{width:40px;height:40px;border:4px solid #333;border-top-color:#4a9eff;border-radius:50%;animation:spin-8ab99a72 1s linear infinite}@keyframes spin-8ab99a72{to{transform:rotate(360deg)}}.error[data-v-8ab99a72]{color:#f44}.btn-retry[data-v-8ab99a72]{margin-top:16px;padding:10px 20px;background:#4a9eff;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500}.lesson-container[data-v-8ab99a72]{max-width:900px;margin:0 auto;padding:40px 30px;transition:max-width .3s ease}.lesson-container.full-width[data-v-8ab99a72]{max-width:100%}.theme-header[data-v-8ab99a72]{margin-bottom:32px;padding-bottom:24px;border-bottom:2px solid #333}.theme-meta[data-v-8ab99a72]{display:flex;align-items:center;gap:8px;margin-bottom:16px}.theme-section[data-v-8ab99a72]{color:#4a9eff;font-size:14px;font-weight:500}.theme-separator[data-v-8ab99a72]{color:#666}.theme-header h1[data-v-8ab99a72]{color:#e0e0e0;font-size:32px;font-weight:700;margin:0;line-height:1.3}.theme-actions[data-v-8ab99a72]{display:flex;align-items:center;gap:12px;margin-top:16px}.duration-badge[data-v-8ab99a72]{padding:6px 12px;background:#4a9eff1a;color:#4a9eff;border-radius:4px;font-size:13px}.btn-fullwidth[data-v-8ab99a72]{padding:8px 14px;background:#2a2a2a;color:#e0e0e0;border:1px solid #444;border-radius:6px;font-size:16px;cursor:pointer;transition:all .2s}.btn-fullwidth[data-v-8ab99a72]:hover{background:#333;border-color:#4a9eff;color:#4a9eff}.btn-complete[data-v-8ab99a72]{padding:10px 20px;background:#4f4;color:#1a1a1a;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-complete[data-v-8ab99a72]:hover:not(:disabled){background:#5f5;transform:translateY(-1px)}.btn-complete[data-v-8ab99a72]:disabled{opacity:.6;cursor:not-allowed}.completed-badge[data-v-8ab99a72]{padding:6px 16px;background:#4f43;color:#4f4;border-radius:4px;font-size:14px;font-weight:600}.markdown-content[data-v-8ab99a72]{color:#e0e0e0;line-height:1.8;font-size:16px}.markdown-content[data-v-8ab99a72] h1,.markdown-content[data-v-8ab99a72] h2,.markdown-content[data-v-8ab99a72] h3{color:#e0e0e0;margin-top:32px;margin-bottom:16px;font-weight:600}.markdown-content[data-v-8ab99a72] h1{font-size:28px}.markdown-content[data-v-8ab99a72] h2{font-size:24px}.markdown-content[data-v-8ab99a72] h3{font-size:20px}.markdown-content[data-v-8ab99a72] p{margin-bottom:16px}.markdown-content[data-v-8ab99a72] code{background:#2a2a2a;padding:2px 6px;border-radius:3px;font-family:Courier New,monospace;font-size:14px;color:#4a9eff}.markdown-content[data-v-8ab99a72] pre{background:#2a2a2a;border:1px solid #444;border-radius:8px;padding:16px;overflow-x:auto;margin:20px 0}.markdown-content[data-v-8ab99a72] pre code{background:transparent;padding:0;color:#e0e0e0}.markdown-content[data-v-8ab99a72] ul,.markdown-content[data-v-8ab99a72] ol{margin:16px 0;padding-left:24px}.markdown-content[data-v-8ab99a72] li{margin-bottom:8px}.markdown-content[data-v-8ab99a72] blockquote{border-left:4px solid #4a9eff;padding-left:16px;margin:20px 0;color:#999;font-style:italic}.markdown-content[data-v-8ab99a72] table{width:100%;border-collapse:collapse;margin:20px 0}.markdown-content[data-v-8ab99a72] th,.markdown-content[data-v-8ab99a72] td{border:1px solid #444;padding:12px;text-align:left}.markdown-content[data-v-8ab99a72] th{background:#2a2a2a;font-weight:600}.markdown-content[data-v-8ab99a72] a{color:#4a9eff;text-decoration:none}.markdown-content[data-v-8ab99a72] a:hover{text-decoration:underline}.markdown-content[data-v-8ab99a72] img{max-width:100%;height:auto;border-radius:8px;margin:20px 0}.lesson-footer[data-v-8ab99a72]{display:flex;justify-content:space-between;gap:16px;margin-top:48px;padding-top:24px;border-top:1px solid #333}.btn-nav[data-v-8ab99a72]{padding:12px 24px;background:#2a2a2a;border:1px solid #444;color:#e0e0e0;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-nav[data-v-8ab99a72]:hover{background:#333;border-color:#4a9eff;color:#4a9eff;transform:translateY(-2px)}@media (max-width: 768px){.lesson-sidebar[data-v-8ab99a72]{position:fixed;left:0;top:60px;bottom:0;z-index:100;transform:translate(-100%)}.lesson-sidebar.sidebar-open[data-v-8ab99a72]{transform:translate(0)}.sidebar-toggle[data-v-8ab99a72]{display:block}.lesson-container[data-v-8ab99a72]{padding:24px 16px}.theme-header h1[data-v-8ab99a72]{font-size:24px}.lesson-footer[data-v-8ab99a72]{flex-direction:column}.btn-nav[data-v-8ab99a72]{max-width:100%}}.laboratory-attempt[data-v-b5655cb7]{height:100vh;display:flex;flex-direction:column;background:#1a1a1a}.loading[data-v-b5655cb7],.error-container[data-v-b5655cb7]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:20px}.error[data-v-b5655cb7]{color:#f44;font-size:16px}.btn-back[data-v-b5655cb7]{color:#4a9eff;text-decoration:none;padding:10px 20px;border:1px solid #4a9eff;border-radius:6px}.laboratory-container[data-v-b5655cb7]{display:flex;flex-direction:column;height:100vh}.laboratory-header[data-v-b5655cb7]{background:#2a2a2a;border-bottom:1px solid #444;padding:16px 0;flex-shrink:0}.header-content[data-v-b5655cb7]{max-width:100%;padding:0 24px;display:flex;justify-content:space-between;align-items:center}.laboratory-info[data-v-b5655cb7]{display:flex;align-items:center;gap:16px}.laboratory-info h1[data-v-b5655cb7]{color:#e0e0e0;font-size:20px;font-weight:600}.laboratory-status[data-v-b5655cb7]{background:#4a9eff33;color:#4a9eff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500}.timer-section[data-v-b5655cb7]{display:flex;align-items:center;gap:20px}.timer[data-v-b5655cb7]{color:#e0e0e0;font-size:24px;font-weight:700;font-family:Courier New,monospace}.timer-warning[data-v-b5655cb7]{color:#f44;animation:pulse-b5655cb7 1s infinite}@keyframes pulse-b5655cb7{0%,to{opacity:1}50%{opacity:.6}}.btn-submit[data-v-b5655cb7]{background:#4f4;color:#1a1a1a;padding:10px 24px;border-radius:6px;font-size:14px;font-weight:600}.btn-submit[data-v-b5655cb7]:hover:not(:disabled){background:#39e639}.btn-submit[data-v-b5655cb7]:disabled{opacity:.5;cursor:not-allowed}.laboratory-main[data-v-b5655cb7]{display:flex;flex:1;overflow:hidden}.terminal-container[data-v-b5655cb7]{flex:1;overflow:hidden}.tasks-sidebar[data-v-b5655cb7]{width:380px;background:#2a2a2a;border-left:1px solid #444;padding:24px;overflow-y:auto;flex-shrink:0}.tasks-sidebar h2[data-v-b5655cb7]{color:#e0e0e0;font-size:18px;font-weight:600;margin-bottom:12px}.tasks-info[data-v-b5655cb7]{display:flex;justify-content:space-between;margin-bottom:20px;padding:12px;background:#1a1a1a;border-radius:6px}.tasks-count[data-v-b5655cb7],.passing-score[data-v-b5655cb7]{color:#999;font-size:13px;margin:0}.tasks-list[data-v-b5655cb7]{display:flex;flex-direction:column;gap:16px}.task-item[data-v-b5655cb7]{background:#1a1a1a;border:1px solid #444;border-radius:8px;padding:16px}.task-header[data-v-b5655cb7]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.task-number[data-v-b5655cb7]{color:#4a9eff;font-size:12px;font-weight:600;text-transform:uppercase}.task-points[data-v-b5655cb7]{color:#fb3;font-size:12px;font-weight:600}.task-title[data-v-b5655cb7]{color:#e0e0e0;font-size:14px;font-weight:600;margin-bottom:8px}.task-description[data-v-b5655cb7]{color:#999;font-size:13px;line-height:1.6;white-space:pre-wrap;margin-bottom:10px}.task-type[data-v-b5655cb7]{margin-top:8px}.type-badge[data-v-b5655cb7]{display:inline-block;background:#4a9eff26;color:#4a9eff;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:500}.tasks-sidebar[data-v-b5655cb7]::-webkit-scrollbar{width:8px}.tasks-sidebar[data-v-b5655cb7]::-webkit-scrollbar-track{background:#1a1a1a}.tasks-sidebar[data-v-b5655cb7]::-webkit-scrollbar-thumb{background:#444;border-radius:4px}.tasks-sidebar[data-v-b5655cb7]::-webkit-scrollbar-thumb:hover{background:#555}.laboratory-results[data-v-8b34dc3c]{min-height:100vh;background:#1a1a1a;padding:40px 20px}.loading[data-v-8b34dc3c],.error-container[data-v-8b34dc3c]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:20px}.error[data-v-8b34dc3c]{color:#f44;font-size:16px}.btn-back[data-v-8b34dc3c]{color:#4a9eff;text-decoration:none;padding:10px 20px;border:1px solid #4a9eff;border-radius:6px}.results-container[data-v-8b34dc3c]{max-width:900px;margin:0 auto}.results-header[data-v-8b34dc3c]{background:#2a2a2a;border:1px solid #444;border-radius:12px;padding:40px;text-align:center;margin-bottom:30px}.status-icon[data-v-8b34dc3c]{font-size:80px;margin-bottom:20px}.status-text[data-v-8b34dc3c]{color:#e0e0e0;font-size:32px;font-weight:700;margin-bottom:24px}.score-summary[data-v-8b34dc3c]{display:flex;align-items:baseline;justify-content:center;gap:16px;margin-bottom:32px}.score-main[data-v-8b34dc3c]{color:#e0e0e0;font-size:48px;font-weight:700}.score-percentage[data-v-8b34dc3c]{color:#f44;font-size:32px;font-weight:600}.score-percentage.passed[data-v-8b34dc3c]{color:#4f4}.laboratory-details[data-v-8b34dc3c]{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:600px;margin:0 auto}.detail-item[data-v-8b34dc3c]{text-align:left;padding:12px;background:#1a1a1a;border-radius:6px}.detail-label[data-v-8b34dc3c]{color:#999;font-size:12px;display:block;margin-bottom:4px}.detail-value[data-v-8b34dc3c]{color:#e0e0e0;font-size:14px;font-weight:500}.results-main[data-v-8b34dc3c]{background:#2a2a2a;border:1px solid #444;border-radius:12px;padding:32px}.results-main h2[data-v-8b34dc3c]{color:#e0e0e0;font-size:24px;font-weight:600;margin-bottom:24px}.tasks-results[data-v-8b34dc3c]{display:flex;flex-direction:column;gap:16px;margin-bottom:32px}.task-result[data-v-8b34dc3c]{background:#1a1a1a;border:2px solid #444;border-radius:8px;padding:20px}.task-result.passed[data-v-8b34dc3c]{border-color:#4f4}.task-result.failed[data-v-8b34dc3c]{border-color:#f44}.task-result-header[data-v-8b34dc3c]{display:flex;justify-content:space-between;align-items:start;margin-bottom:12px}.task-info[data-v-8b34dc3c]{flex:1}.task-number[data-v-8b34dc3c]{color:#4a9eff;font-size:12px;font-weight:600;text-transform:uppercase;display:block;margin-bottom:4px}.task-title[data-v-8b34dc3c]{color:#e0e0e0;font-size:16px;font-weight:600}.task-score[data-v-8b34dc3c]{display:flex;align-items:baseline;gap:4px;font-size:24px;font-weight:700}.points-earned[data-v-8b34dc3c]{color:#e0e0e0}.points-separator[data-v-8b34dc3c]{color:#666}.points-total[data-v-8b34dc3c]{color:#999}.points-label[data-v-8b34dc3c]{color:#666;font-size:14px;font-weight:500}.task-status[data-v-8b34dc3c]{margin-bottom:12px}.status-badge[data-v-8b34dc3c]{display:inline-block;padding:6px 12px;border-radius:12px;font-size:14px;font-weight:600;background:#f443;color:#f44}.status-badge.passed[data-v-8b34dc3c]{background:#4f43;color:#4f4}.verification-output[data-v-8b34dc3c]{margin-top:12px}.verification-output h4[data-v-8b34dc3c]{color:#999;font-size:12px;font-weight:600;text-transform:uppercase;margin-bottom:8px}.verification-output pre[data-v-8b34dc3c]{background:#0a0a0a;color:#e0e0e0;padding:12px;border-radius:4px;font-size:13px;font-family:Courier New,monospace;overflow-x:auto;white-space:pre-wrap;word-wrap:break-word}.results-actions[data-v-8b34dc3c]{display:flex;gap:12px;justify-content:center}.btn-dashboard[data-v-8b34dc3c],.btn-lessons[data-v-8b34dc3c],.btn-retry[data-v-8b34dc3c]{padding:12px 24px;border-radius:6px;font-size:14px;font-weight:500;text-decoration:none;transition:all .2s}.btn-dashboard[data-v-8b34dc3c]{background:#4a9eff;color:#fff}.btn-dashboard[data-v-8b34dc3c]:hover{background:#3d8fe8}.btn-lessons[data-v-8b34dc3c]{background:#444;color:#e0e0e0}.btn-lessons[data-v-8b34dc3c]:hover{background:#555}.btn-retry[data-v-8b34dc3c]{background:#fb3;color:#1a1a1a}.btn-retry[data-v-8b34dc3c]:hover{background:#f0ab28}
