@import"https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&family=Inter:wght@400;500&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-base: #f0f7ff;--bg-surface: #ffffff;--bg-card: #ffffff;--bg-hover: #e8f0fe;--bg-input: #f8faff;--border-subtle: #dbeafe;--border-default: #bfdbfe;--border-bright: #93c5fd;--border-focus: #1d4ed8;--primary: #1d4ed8;--primary-hover: #1e40af;--primary-light: #3b82f6;--primary-glow: rgba(29, 78, 216, .1);--primary-glow-strong: rgba(29, 78, 216, .2);--accent: #0ea5e9;--accent-glow: rgba(14, 165, 233, .12);--green: #059669;--green-bg: rgba(5, 150, 105, .1);--yellow: #d97706;--yellow-bg: rgba(217, 119, 6, .1);--red: #dc2626;--red-bg: rgba(220, 38, 38, .1);--purple: #7c3aed;--purple-bg: rgba(124, 58, 237, .1);--text-1: #0f172a;--text-2: #475569;--text-3: #64748b;--gradient-primary: linear-gradient(135deg, #1d4ed8 0%, #3b82f6 100%);--gradient-accent: linear-gradient(135deg, #0284c7 0%, #0ea5e9 100%);--gradient-hero: linear-gradient(135deg, #1e3a8a 0%, #1d4ed8 100%);--shadow-sm: 0 1px 3px rgba(29, 78, 216, .08);--shadow-md: 0 4px 16px rgba(29, 78, 216, .12);--shadow-lg: 0 8px 32px rgba(29, 78, 216, .15);--shadow-glow: 0 0 20px rgba(29, 78, 216, .15)}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseBlue{0%,to{box-shadow:0 0 #1d4ed859}50%{box-shadow:0 0 0 8px #1d4ed800}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Poppins,-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:background-color .2s,color .2s,transform .2s,box-shadow .2s,opacity .2s}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}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.break-words{word-wrap:break-word;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}::-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)}.card-ocean{background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:20px;box-shadow:0 2px 16px #1d4ed814;transition:transform .28s,box-shadow .28s;position:relative;overflow:hidden;will-change:transform}.card-ocean:hover{transform:translateY(-3px);box-shadow:0 6px 24px #1d4ed821}.btn-ocean{background:var(--gradient-hero);color:#fff;border:none;padding:11px 24px;border-radius:10px;font-family:Poppins,sans-serif;font-weight:600;font-size:.875rem;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:transform .2s,box-shadow .2s;will-change:transform}.btn-ocean:hover{transform:translateY(-2px);box-shadow:0 4px 14px #1d4ed84d}.btn-ocean:disabled{opacity:.5;transform:none;cursor:not-allowed}.btn-ocean .arrow{transition:transform .2s}.btn-ocean:hover .arrow{transform:translate(4px)}.btn-ocean-full{width:100%;justify-content:center}.card-padded{padding:24px}.hero-banner--center{text-align:center;margin-bottom:24px}.label-badge{display:inline-block;background:var(--primary-glow);color:var(--primary);font-size:.72rem;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;padding:5px 14px;border-radius:50px;margin-bottom:8px}.icon-box{display:flex;align-items:center;justify-content:center;background:var(--primary-glow);border:1.5px solid var(--border-subtle);border-radius:14px;font-size:1.5rem;flex-shrink:0}.hero-banner{background:var(--gradient-hero);border-radius:20px;padding:32px 36px;margin-bottom:28px;position:relative;overflow:hidden;animation:fadeUp .5s ease both}.hero-banner:before{content:"";position:absolute;top:-60px;right:-80px;width:300px;height:300px;background:#ffffff0d;border-radius:50%;pointer-events:none}.hero-banner h1,.hero-banner h2{color:#fff;font-weight:800}.hero-banner p{color:#ffffffbf}.login-page[data-v-f4bf2f1d]{min-height:100vh;background:var(--gradient-hero);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:24px}.login-deco-1[data-v-f4bf2f1d]{position:absolute;top:-80px;right:-80px;width:320px;height:320px;background:#ffffff0f;border-radius:50%}.login-deco-2[data-v-f4bf2f1d]{position:absolute;bottom:-100px;left:-60px;width:260px;height:260px;background:#ffffff0a;border-radius:50%}.login-card[data-v-f4bf2f1d]{background:var(--bg-surface);border-radius:24px;padding:40px 36px;max-width:420px;width:100%;box-shadow:var(--shadow-lg);animation:fadeUp .45s ease both;position:relative;z-index:1}.login-badge[data-v-f4bf2f1d]{display:inline-flex;align-items:center;gap:8px;background:#1d4ed814;border:1px solid rgba(29,78,216,.15);color:var(--primary);border-radius:50px;padding:6px 14px;font-size:.75rem;font-weight:600;letter-spacing:.5px;margin-bottom:20px}.badge-dot[data-v-f4bf2f1d]{width:7px;height:7px;background:var(--green);border-radius:50%;animation:pulseBlue 2s ease-in-out infinite}.login-logo-mark[data-v-f4bf2f1d]{width:44px;height:44px;background:var(--gradient-hero);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin-bottom:16px}.login-title[data-v-f4bf2f1d]{font-size:26px;font-weight:800;color:var(--text-1);margin-bottom:4px}.login-sub[data-v-f4bf2f1d]{color:var(--text-3);margin-bottom:28px;font-size:14px}.login-form[data-v-f4bf2f1d]{display:flex;flex-direction:column;gap:16px}.form-field[data-v-f4bf2f1d]{display:flex;flex-direction:column;gap:6px}.login-error[data-v-f4bf2f1d]{background:var(--red-bg);color:var(--red);border:1px solid rgba(220,38,38,.2);padding:10px 12px;border-radius:8px;font-size:13px}.login-switch[data-v-f4bf2f1d]{margin-top:20px;text-align:center;font-size:13px;color:var(--text-3)}.login-switch a[data-v-f4bf2f1d]{color:var(--primary);font-weight:600;text-decoration:none}.login-switch a[data-v-f4bf2f1d]:hover{text-decoration:underline}.login-warn[data-v-f4bf2f1d]{background:var(--yellow-bg);color:var(--yellow);border:1px solid rgba(234,179,8,.3);padding:10px 12px;border-radius:8px;font-size:13px}.oauth-divider[data-v-f4bf2f1d]{display:flex;align-items:center;gap:12px;color:var(--text-3);font-size:13px}.oauth-divider[data-v-f4bf2f1d]:before,.oauth-divider[data-v-f4bf2f1d]:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.btn-google-outer[data-v-f4bf2f1d]{position:relative;height:40px;display:flex;justify-content:center}.btn-gis-hidden[data-v-f4bf2f1d]{position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;z-index:2;overflow:hidden}.btn-google-visual[data-v-f4bf2f1d]{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:348px;height:40px;border:1px solid var(--border-default);border-radius:4px;background:var(--bg-surface);font-size:14px;font-weight:500;color:var(--text-2);cursor:pointer;pointer-events:none;-webkit-user-select:none;user-select:none;transition:background .15s}.btn-google-outer:hover .btn-google-visual[data-v-f4bf2f1d]{background:var(--bg-hover);border-color:var(--border-bright)}.btn-passkey[data-v-f4bf2f1d]{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;margin-top:12px;border:1px solid var(--border-default);border-radius:10px;background:var(--bg-surface);color:var(--text-1);font-size:.95rem;font-weight:600;cursor:pointer;transition:border-color .2s,background .2s}.btn-passkey[data-v-f4bf2f1d]:hover{border-color:var(--primary);background:var(--bg-hover)}.btn-passkey[data-v-f4bf2f1d]:disabled{opacity:.6;cursor:not-allowed}.btn-passkey[data-v-f4bf2f1d]:focus-visible,.btn-ocean[data-v-f4bf2f1d]:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}/**
 * 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-a7158a39]{width:100%;height:100%;background:#1a1a1a;padding:10px;box-sizing:border-box}.terminal[data-v-a7158a39]{width:100%;height:100%}.loading-overlay[data-v-3a19c6b8]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:9999}.loading-modal[data-v-3a19c6b8]{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:16px;padding:36px 40px;display:flex;flex-direction:column;align-items:center;gap:16px;min-width:260px;text-align:center;box-shadow:var(--shadow-lg)}.loading-spinner[data-v-3a19c6b8]{width:44px;height:44px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-3a19c6b8 .8s linear infinite}@keyframes spin-3a19c6b8{to{transform:rotate(360deg)}}.loading-message[data-v-3a19c6b8]{color:var(--text-1);font-size:15px;font-weight:600;margin:0}.loading-hint[data-v-3a19c6b8]{color:var(--text-3);font-size:12px;margin:0}.distro-icon[data-v-e99896a3]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.distro-icon-emoji[data-v-e99896a3]{font-size:inherit;line-height:1}.provisioning-lock-banner[data-v-ebb606d4]{position:fixed;top:0;left:0;right:0;z-index:9998;background:var(--yellow);color:var(--bg-surface);text-align:center;padding:10px 16px;font-size:14px;font-weight:500}.sandbox-page[data-v-ebb606d4]{display:flex;flex-direction:column;height:100vh;background:var(--bg-surface);overflow:hidden;font-family:Inter,system-ui,sans-serif}.sandbox-header[data-v-ebb606d4]{background:var(--bg-surface);border-bottom:1px solid var(--border-default);padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.header-left[data-v-ebb606d4]{display:flex;align-items:center;gap:12px;min-width:0}.sandbox-badge[data-v-ebb606d4]{background:linear-gradient(135deg,var(--primary),#0ea5e9);color:var(--bg-surface);font-size:11px;font-weight:700;letter-spacing:.08em;padding:3px 9px;border-radius:5px}.sandbox-title[data-v-ebb606d4]{color:#1e3a8a;font-size:16px;font-weight:700}.header-right[data-v-ebb606d4]{display:flex;align-items:center;gap:12px;flex-shrink:0}.user-info[data-v-ebb606d4]{color:var(--text-3);font-size:13px;font-weight:500;padding:0 6px}.btn-link[data-v-ebb606d4]{color:var(--primary);text-decoration:none;font-size:13px;font-weight:500;padding:7px 14px;border-radius:7px;border:1px solid var(--border-default);transition:background .15s,border-color .15s}.btn-link[data-v-ebb606d4]:hover{border-color:var(--border-bright);background:var(--bg-base)}.btn-logout[data-v-ebb606d4]{font-size:13px;font-weight:500;padding:7px 14px;border-radius:7px;background:var(--red-bg);color:var(--red);border:1px solid #fecaca;cursor:pointer;transition:background .15s}.btn-logout[data-v-ebb606d4]:hover{background:#fee2e2}.sandbox-body[data-v-ebb606d4]{display:flex;flex:1;overflow:hidden}.terminal-zone[data-v-ebb606d4]{flex:1;background:#0f172a;overflow:hidden;display:flex;flex-direction:column}.no-container[data-v-ebb606d4]{display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1;color:#94a3b8;text-align:center;padding:40px;gap:10px}.no-container h2[data-v-ebb606d4]{color:var(--text-3);font-size:18px;font-weight:600}.no-container p[data-v-ebb606d4]{font-size:13px;color:var(--text-2);max-width:300px;line-height:1.6}.no-container strong[data-v-ebb606d4]{color:var(--border-bright)}.terminal-with-tabs[data-v-ebb606d4]{display:flex;flex-direction:column;flex:1;overflow:hidden}.tab-bar[data-v-ebb606d4]{display:flex;align-items:center;gap:2px;background:#0f172a;border-bottom:1px solid #1e293b;padding:4px 6px 0;height:36px;flex-shrink:0;overflow-x:auto}.tab-bar[data-v-ebb606d4]::-webkit-scrollbar{height:0}.tab-btn[data-v-ebb606d4]{display:flex;align-items:center;gap:7px;padding:0 10px;height:28px;border-radius:6px 6px 0 0;background:#0f172a;border:1px solid #1e293b;border-bottom:none;color:#475569;font-size:12px;cursor:pointer;white-space:nowrap;transition:color .15s,background .15s;flex-shrink:0}.tab-btn[data-v-ebb606d4]:hover{color:#94a3b8;background:#0d1b2a}.tab-btn.tab-active[data-v-ebb606d4]{background:#020617;color:#e2e8f0;border-color:#334155}.tab-close[data-v-ebb606d4]{color:#475569;font-size:15px;line-height:1;padding:1px 3px;border-radius:3px;cursor:pointer}.tab-close[data-v-ebb606d4]:hover{color:#f55;background:#ff555526}.tab-add[data-v-ebb606d4]{width:26px;height:26px;background:transparent;border:1px dashed #1e293b;border-radius:5px;color:#38bdf8;font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:2px;transition:border-color .15s,background .15s}.tab-add[data-v-ebb606d4]:hover{border-color:#38bdf8;background:#38bdf814}.terminals-wrap[data-v-ebb606d4]{position:relative;flex:1;overflow:hidden;background:#020617}.terminal-slot[data-v-ebb606d4]{position:absolute;top:0;right:0;bottom:0;left:0;display:none}.terminal-slot.terminal-visible[data-v-ebb606d4]{display:block}.sandbox-sidebar[data-v-ebb606d4]{width:320px;flex-shrink:0;background:var(--bg-surface);border-left:1px solid var(--border-default);display:flex;flex-direction:column;overflow-y:auto}.sidebar-head[data-v-ebb606d4]{padding:14px 18px;border-bottom:1px solid var(--border-subtle);flex-shrink:0;font-size:10px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:1px}.msg[data-v-ebb606d4]{margin:10px 14px;padding:10px 14px;border-radius:8px;font-size:12px}.msg--error[data-v-ebb606d4]{background:var(--red-bg);border:1px solid #fecaca;color:var(--red)}.msg--success[data-v-ebb606d4]{background:var(--green-bg);border:1px solid #bbf7d0;color:var(--green)}.sandbox-info[data-v-ebb606d4]{padding:16px 18px;border-bottom:1px solid var(--border-subtle)}.sandbox-info-header[data-v-ebb606d4]{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.sandbox-type[data-v-ebb606d4]{display:flex;align-items:center;gap:10px}.type-name[data-v-ebb606d4]{font-size:14px;font-weight:600;color:#1e3a8a}.sandbox-status[data-v-ebb606d4]{font-size:10px;padding:3px 10px;border-radius:20px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.status-running[data-v-ebb606d4]{background:var(--green-bg);color:var(--green)}.status-stopped[data-v-ebb606d4]{background:var(--red-bg);color:var(--red)}.status-creating[data-v-ebb606d4]{background:var(--yellow-bg);color:var(--yellow)}.sandbox-meta[data-v-ebb606d4]{margin-bottom:14px;padding:10px 12px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:8px}.meta-item[data-v-ebb606d4]{display:flex;justify-content:space-between;align-items:center;font-size:12px}.meta-label[data-v-ebb606d4]{color:var(--text-3)}.meta-value[data-v-ebb606d4]{color:var(--primary);font-weight:600}.sandbox-actions[data-v-ebb606d4]{display:flex;gap:8px;flex-wrap:wrap}.btn-action[data-v-ebb606d4]{flex:1;padding:8px 10px;font-size:12px;border-radius:7px;font-weight:600;min-width:72px;cursor:pointer;border:none;transition:filter .15s,transform .15s}.btn-start[data-v-ebb606d4]{background:var(--green-bg);color:var(--green);border:1px solid #bbf7d0}.btn-stop[data-v-ebb606d4]{background:var(--yellow-bg);color:var(--yellow);border:1px solid #fde68a}.btn-connect[data-v-ebb606d4]{background:linear-gradient(135deg,var(--primary),#0ea5e9);color:var(--bg-surface);box-shadow:var(--shadow-md)}.btn-delete[data-v-ebb606d4]{background:var(--red-bg);color:var(--red);border:1px solid #fecaca;flex:0 0 auto}.btn-start[data-v-ebb606d4]:hover,.btn-stop[data-v-ebb606d4]:hover{filter:brightness(.95)}.btn-connect[data-v-ebb606d4]:hover{filter:brightness(.9);transform:translateY(-1px)}.btn-delete[data-v-ebb606d4]:hover{background:var(--red-bg);filter:brightness(.95)}.upgrade-prompt[data-v-ebb606d4]{padding:24px 18px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}.upgrade-prompt-icon[data-v-ebb606d4]{font-size:2.5rem}.upgrade-prompt-title[data-v-ebb606d4]{color:#1e3a8a;font-size:15px;font-weight:700;margin:0}.upgrade-prompt-desc[data-v-ebb606d4]{color:var(--text-3);font-size:12px;line-height:1.5;margin:0}.upgrade-prompt-btn[data-v-ebb606d4]{text-decoration:none;padding:9px 22px;border-radius:8px;font-size:13px;font-weight:600;margin-top:4px}.create-sandbox[data-v-ebb606d4]{padding:16px 18px;flex:1}.create-sandbox h3[data-v-ebb606d4]{color:#1e3a8a;font-size:14px;font-weight:700;margin-bottom:4px}.subtitle[data-v-ebb606d4]{color:var(--text-3);font-size:12px;margin-bottom:18px}.category[data-v-ebb606d4]{margin-bottom:16px}.category-header[data-v-ebb606d4]{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;padding:8px 10px;border-radius:7px;cursor:pointer;transition:background .15s;-webkit-user-select:none;user-select:none}.category-header[data-v-ebb606d4]:hover{background:var(--bg-hover)}.category-info[data-v-ebb606d4]{display:flex;align-items:center;gap:8px}.category-icon[data-v-ebb606d4]{font-size:16px}.category-title[data-v-ebb606d4]{color:var(--text-1);text-transform:uppercase;letter-spacing:.6px;font-size:11px;font-weight:700}.category-toggle[data-v-ebb606d4]{color:var(--primary);font-size:10px}.category-options[data-v-ebb606d4]{display:flex;flex-direction:column;gap:6px}.env-option[data-v-ebb606d4]{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:10px;text-align:left;cursor:pointer;width:100%;transition:border-color .15s,background .15s,transform .15s}.env-option[data-v-ebb606d4]:not(:disabled):hover{border-color:var(--border-bright);background:var(--bg-hover);transform:translate(2px)}.env-option[data-v-ebb606d4]:disabled{opacity:.4;cursor:not-allowed}.env-icon[data-v-ebb606d4]{font-size:22px;flex-shrink:0}.env-details[data-v-ebb606d4]{flex:1;min-width:0}.env-name[data-v-ebb606d4]{font-size:13px;font-weight:600;color:#1e3a8a;margin-bottom:2px}.env-desc[data-v-ebb606d4]{font-size:11px;color:var(--text-3)}.db-connection-info[data-v-ebb606d4]{margin-top:14px;border:1px solid var(--border-default);border-radius:10px;overflow:hidden}.db-info-title[data-v-ebb606d4]{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-base);border-bottom:1px solid var(--border-default);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#1e3a8a}.db-info-body[data-v-ebb606d4]{padding:10px 12px;background:var(--bg-surface);display:flex;flex-direction:column;gap:5px}.db-info-row[data-v-ebb606d4]{display:flex;justify-content:space-between;align-items:center;font-size:12px}.db-info-label[data-v-ebb606d4]{color:var(--text-3);flex-shrink:0}.db-info-value[data-v-ebb606d4]{font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;color:var(--primary);background:var(--bg-base);padding:2px 6px;border-radius:4px;cursor:pointer;border:none}.db-info-value[data-v-ebb606d4]:hover{background:var(--border-subtle)}.db-info-cmd-label[data-v-ebb606d4]{margin-top:6px;font-size:11px;color:var(--text-3);font-weight:600}.db-info-cmd[data-v-ebb606d4]{display:block;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;color:var(--green);background:var(--green-bg);border:1px solid #bbf7d0;padding:7px 10px;border-radius:6px;cursor:pointer;word-break:break-all}.db-info-cmd[data-v-ebb606d4]:hover{background:#dcfce7}.db-copied[data-v-ebb606d4]{text-align:center;font-size:11px;color:var(--green);font-weight:600;padding:2px 0}.modal-backdrop[data-v-ebb606d4]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172ab3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-card[data-v-ebb606d4]{background:var(--bg-surface);border-radius:14px;padding:28px 32px;max-width:420px;width:100%;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;box-shadow:var(--shadow-lg)}.modal-icon[data-v-ebb606d4]{font-size:40px;line-height:1}.modal-title[data-v-ebb606d4]{color:#1e3a8a;font-size:17px;font-weight:700}.modal-body[data-v-ebb606d4]{color:var(--text-2);font-size:13px;line-height:1.6;margin:0}.modal-body strong[data-v-ebb606d4]{color:#1e3a8a}.modal-hint[data-v-ebb606d4]{color:var(--text-3);font-size:12px}.modal-actions[data-v-ebb606d4]{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:6px}.btn-ghost[data-v-ebb606d4]{padding:9px 20px;background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-3);border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}.btn-ghost[data-v-ebb606d4]:hover{background:var(--bg-input)}.btn-secondary-action[data-v-ebb606d4]{padding:9px 20px;background:var(--bg-base);border:1px solid var(--border-default);color:var(--primary);border-radius:8px;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;display:inline-block;transition:background .15s}.btn-secondary-action[data-v-ebb606d4]:hover{background:var(--border-subtle)}.btn-danger[data-v-ebb606d4]{padding:9px 20px;background:var(--red);color:var(--bg-surface);border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:filter .15s}.btn-danger[data-v-ebb606d4]:hover:not(:disabled){filter:brightness(.9)}.btn-danger[data-v-ebb606d4]:disabled{opacity:.5;cursor:not-allowed}.fb-overlay[data-v-1def608a]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:9999}.fb-dialog[data-v-1def608a]{background:var(--bg-card, #fff);border-radius:14px;width:90%;max-width:460px;padding:28px 24px 24px;box-shadow:var(--shadow-lg)}.fb-header[data-v-1def608a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.fb-title[data-v-1def608a]{font-weight:600;font-size:17px;color:var(--text-1);margin:0}.fb-close[data-v-1def608a]{background:none;border:none;font-size:24px;color:var(--text-3);cursor:pointer;line-height:1;padding:4px;border-radius:6px;transition:background .15s}.fb-close[data-v-1def608a]:hover{background:var(--bg-hover, #f1f5f9)}.fb-context[data-v-1def608a]{display:inline-block;font-size:12px;font-weight:500;padding:4px 12px;border-radius:6px;margin-bottom:16px}.fb-context--platform[data-v-1def608a]{background:var(--yellow-bg);color:var(--yellow)}.fb-rating[data-v-1def608a]{display:flex;align-items:center;gap:10px;margin-bottom:14px}.fb-rating-label[data-v-1def608a]{font-size:13px;color:var(--text-3)}.fb-stars[data-v-1def608a]{display:flex;gap:1px}.fb-star[data-v-1def608a]{font-size:22px;color:var(--border-default, #e2e8f0);cursor:pointer;transition:color .1s,transform .1s;background:none;border:none;padding:2px;line-height:1}.fb-star.active[data-v-1def608a]{color:var(--yellow)}.fb-star.hovered[data-v-1def608a]{transform:scale(1.15)}.fb-star[data-v-1def608a]:focus-visible{outline:2px solid var(--primary, #1d4ed8);outline-offset:2px;border-radius:4px}.fb-field[data-v-1def608a]{display:block}.sr-only[data-v-1def608a]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.fb-textarea[data-v-1def608a]{width:100%;border:1px solid var(--border-default, #e2e8f0);border-radius:8px;padding:12px;font-size:14px;font-family:inherit;resize:vertical;min-height:90px;background:var(--bg-base, #f8fafc);color:var(--text-1);box-sizing:border-box;transition:border-color .15s}.fb-textarea[data-v-1def608a]::placeholder{color:var(--text-3, #94a3b8)}.fb-textarea[data-v-1def608a]:focus{outline:none;border-color:var(--primary, #1d4ed8);box-shadow:0 0 0 3px #1d4ed81a}.fb-error[data-v-1def608a]{color:var(--red, #ef4444);font-size:13px;margin-top:8px}.fb-footer[data-v-1def608a]{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.fb-btn[data-v-1def608a]{padding:9px 20px;border-radius:8px;font-size:14px;font-family:inherit;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s}.fb-btn--ghost[data-v-1def608a]{border:1px solid var(--border-default, #e2e8f0);background:transparent;color:var(--text-2)}.fb-btn--ghost[data-v-1def608a]:hover{background:var(--bg-hover, #f1f5f9)}.fb-btn--primary[data-v-1def608a]{border:none;background:var(--primary, #1d4ed8);color:#fff}.fb-btn--primary[data-v-1def608a]:hover:not(:disabled){background:var(--primary-hover, #1e40af)}.fb-btn--primary[data-v-1def608a]:disabled{opacity:.55;cursor:not-allowed}.fb-btn[data-v-1def608a]:focus-visible{outline:2px solid var(--primary, #1d4ed8);outline-offset:2px}.modal-fade-enter-active[data-v-1def608a]{transition:opacity .2s ease}.modal-fade-enter-active .fb-dialog[data-v-1def608a]{transition:transform .2s ease,opacity .2s ease}.modal-fade-leave-active[data-v-1def608a]{transition:opacity .15s ease}.modal-fade-leave-active .fb-dialog[data-v-1def608a]{transition:transform .15s ease,opacity .15s ease}.modal-fade-enter-from[data-v-1def608a]{opacity:0}.modal-fade-enter-from .fb-dialog[data-v-1def608a]{opacity:0;transform:translateY(8px) scale(.98)}.modal-fade-leave-to[data-v-1def608a]{opacity:0}.modal-fade-leave-to .fb-dialog[data-v-1def608a]{opacity:0;transform:translateY(4px) scale(.99)}.profile-menu[data-v-b4dd3e47]{position:relative}.profile-button[data-v-b4dd3e47]{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:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s,opacity .2s}.profile-button[data-v-b4dd3e47]:hover{border-color:var(--border-bright);background:var(--bg-hover)}.avatar[data-v-b4dd3e47]{width:30px;height:30px;border-radius:50%;overflow:hidden;flex-shrink:0}.avatar-img[data-v-b4dd3e47]{width:100%;height:100%;object-fit:cover}.avatar-placeholder[data-v-b4dd3e47]{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-b4dd3e47]{color:var(--text-3);transition:transform .2s;flex-shrink:0}.chevron.open[data-v-b4dd3e47]{transform:rotate(180deg)}.dropdown-menu[data-v-b4dd3e47]{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-b4dd3e47]{padding:16px;display:flex;align-items:flex-start;gap:12px;background:var(--primary-glow)}.avatar-lg[data-v-b4dd3e47]{width:40px;height:40px;border-radius:10px;overflow:hidden;flex-shrink:0}.user-info[data-v-b4dd3e47]{display:flex;flex-direction:column;min-width:0}.user-name[data-v-b4dd3e47]{color:var(--text-1);font-size:14px;font-weight:600}.user-email[data-v-b4dd3e47]{color:var(--text-3);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-divider[data-v-b4dd3e47]{height:1px;background:var(--border-subtle);margin:4px 0}.dropdown-item[data-v-b4dd3e47]{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:background-color .15s,color .15s,border-color .15s,box-shadow .15s,transform .15s,opacity .15s;font-size:14px;font-family:inherit;font-weight:500}.dropdown-item[data-v-b4dd3e47]:hover{background:var(--bg-hover);color:var(--text-1)}.dropdown-item.logout[data-v-b4dd3e47]{color:var(--red)}.dropdown-item.logout[data-v-b4dd3e47]:hover{background:var(--red-bg)}.fb-unread-badge[data-v-b4dd3e47]{background:var(--red, #ef4444);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;margin-left:auto}.dropdown-enter-active[data-v-b4dd3e47],.dropdown-leave-active[data-v-b4dd3e47]{transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease,opacity .18s ease}.dropdown-enter-from[data-v-b4dd3e47],.dropdown-leave-to[data-v-b4dd3e47]{opacity:0;transform:translateY(-8px) scale(.97)}.main-layout[data-v-42c35434]{display:flex;flex-direction:column;min-height:100vh;background:var(--bg-base)}.topnav[data-v-42c35434]{background:var(--bg-surface);border-bottom:1.5px solid var(--border-subtle);position:sticky;top:0;z-index:200}.topnav-inner[data-v-42c35434]{max-width:1200px;margin:0 auto;padding:0 28px;height:60px;display:flex;align-items:center;gap:8px}.topnav-logo[data-v-42c35434]{display:flex;align-items:center;gap:8px;text-decoration:none;margin-right:8px;flex-shrink:0}.logo-mark[data-v-42c35434]{width:34px;height:34px;background:var(--gradient-hero);border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:1rem;animation:pulseBlue 2.5s ease-in-out infinite}.logo-text[data-v-42c35434]{font-size:15px;font-weight:700;color:var(--text-1);letter-spacing:-.3px}.topnav-links[data-v-42c35434]{display:flex;align-items:center;gap:2px;flex:1}.topnav-link[data-v-42c35434]{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:8px;font-size:13.5px;font-weight:500;color:var(--text-2);text-decoration:none;transition:background-color .15s,color .15s;white-space:nowrap}.topnav-link[data-v-42c35434]:hover{background:var(--primary-glow);color:var(--primary)}.topnav-link.active[data-v-42c35434]{background:var(--primary-glow);color:var(--primary);font-weight:600}.topnav-icon[data-v-42c35434]{display:flex;align-items:center;opacity:.75}.admin-link[data-v-42c35434]{color:var(--purple)}.admin-link[data-v-42c35434]:hover,.admin-link.active[data-v-42c35434]{background:var(--purple-bg);color:var(--purple)}.topnav-right[data-v-42c35434]{display:flex;align-items:center;gap:8px;margin-left:auto}.hamburger[data-v-42c35434]{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:36px;height:36px;background:transparent;border:none;padding:6px;border-radius:8px;cursor:pointer}.hamburger span[data-v-42c35434]{display:block;width:18px;height:2px;background:var(--text-2);border-radius:2px;transition:transform .2s,opacity .2s}.hamburger.open span[data-v-42c35434]:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger.open span[data-v-42c35434]:nth-child(2){opacity:0}.hamburger.open span[data-v-42c35434]:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.mobile-nav[data-v-42c35434]{display:flex;flex-direction:column;padding:8px 16px 12px;border-top:1px solid var(--border-subtle);gap:2px}.mobile-link[data-v-42c35434]{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:8px;font-size:14px;font-weight:500;color:var(--text-2);text-decoration:none;transition:background-color .15s,color .15s}.mobile-link[data-v-42c35434]:hover,.mobile-link.active[data-v-42c35434]{background:var(--primary-glow);color:var(--primary)}.mobile-nav-enter-active[data-v-42c35434],.mobile-nav-leave-active[data-v-42c35434]{transition:opacity .15s,transform .15s}.mobile-nav-enter-from[data-v-42c35434],.mobile-nav-leave-to[data-v-42c35434]{opacity:0;transform:translateY(-6px)}.page-content[data-v-42c35434]{flex:1;max-width:1200px;width:100%;margin:0 auto;padding:28px}@media (max-width: 768px){.topnav-links[data-v-42c35434]{display:none}.hamburger[data-v-42c35434]{display:flex}.page-content[data-v-42c35434]{padding:16px}.topnav-inner[data-v-42c35434]{padding:0 16px}}.pub-navbar[data-v-42c35434]{position:sticky;top:0;z-index:200;background:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);height:68px;font-family:Poppins,system-ui,sans-serif}.pub-nav-inner[data-v-42c35434]{max-width:1200px;margin:0 auto;height:100%;display:flex;align-items:center;gap:28px;padding:0 24px}.pub-nav-logo[data-v-42c35434]{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}.pub-logo-icon[data-v-42c35434]{width:36px;height:36px;background:var(--gradient-primary);color:#fff;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:800}.pub-logo-text[data-v-42c35434]{font-size:1.2rem;font-weight:800;color:var(--primary)}.pub-nav-links[data-v-42c35434]{display:flex;gap:4px;flex:1}.pub-nav-link[data-v-42c35434]{text-decoration:none;color:var(--text-2);font-size:.9rem;font-weight:500;padding:6px 12px;border-radius:8px;transition:color .2s,background .2s}.pub-nav-link[data-v-42c35434]:hover,.pub-nav-link.router-link-active[data-v-42c35434]{color:var(--primary);background:var(--primary-glow)}.pub-nav-cta[data-v-42c35434]{display:flex;gap:10px;flex-shrink:0;margin-left:auto}.pub-btn-login[data-v-42c35434]{text-decoration:none;color:var(--primary);font-weight:600;font-size:.9rem;padding:8px 20px;border-radius:10px;border:1.5px solid var(--primary);transition:background .2s,color .2s}.pub-btn-login[data-v-42c35434]:hover{background:var(--primary);color:#fff}.pub-btn-start[data-v-42c35434]{text-decoration:none;color:#fff;font-weight:600;font-size:.9rem;padding:8px 20px;border-radius:10px;background:var(--gradient-primary);transition:opacity .2s,transform .2s}.pub-btn-start[data-v-42c35434]:hover{opacity:.9;transform:translateY(-1px)}.pub-mobile-nav[data-v-42c35434]{display:flex;flex-direction:column;padding:8px 16px 12px;border-top:1px solid #dbeafe;gap:2px;background:var(--bg-surface)}.pub-mobile-start[data-v-42c35434]{color:var(--primary)!important;font-weight:700}@media (max-width: 768px){.pub-nav-links[data-v-42c35434],.pub-nav-cta[data-v-42c35434]{display:none}.pub-nav-inner[data-v-42c35434]{padding:0 16px}}@media (min-width: 769px){.pub-navbar .hamburger[data-v-42c35434]{display:none}}.dashboard[data-v-053fda60]{margin:0 auto;padding:24px 0 48px}.loading-state[data-v-053fda60]{text-align:center;padding:80px 20px;color:var(--text-3)}.error-state[data-v-053fda60]{text-align:center;padding:40px;color:var(--red)}.dash-greeting[data-v-053fda60]{font-size:15px;color:var(--text-2);margin-bottom:20px}.dash-greeting strong[data-v-053fda60]{color:var(--text-1)}.dash-main[data-v-053fda60]{display:grid;grid-template-columns:1fr 260px;gap:24px;align-items:start}.dash-section[data-v-053fda60]{margin-bottom:28px}.dash-section-header[data-v-053fda60]{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.dash-badge[data-v-053fda60]{font-size:11px;background:var(--border-subtle);color:var(--primary);padding:2px 8px;border-radius:8px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.dash-see-all[data-v-053fda60]{font-size:12px;color:var(--primary);text-decoration:none;font-weight:500}.dash-see-all[data-v-053fda60]:hover{text-decoration:underline}.dash-cards-grid[data-v-053fda60]{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.visual-card[data-v-053fda60]{background:var(--bg-card);border-radius:14px;border:1.5px solid var(--border-subtle);overflow:hidden;box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;flex-direction:column}.visual-card[data-v-053fda60]:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--primary-light)}.visual-card-image[data-v-053fda60]{height:90px;display:flex;align-items:center;justify-content:center;position:relative}.visual-card-emoji[data-v-053fda60]{font-size:32px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.15))}.visual-card-status[data-v-053fda60]{position:absolute;top:8px;right:8px;font-size:10px;padding:2px 8px;border-radius:8px;font-weight:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.status-active_monthly[data-v-053fda60],.status-active_full[data-v-053fda60]{background:#05966933;color:#dcfce7}.status-booked[data-v-053fda60]{background:#fff3;color:#fff}.status-cancelled[data-v-053fda60],.status-revoked[data-v-053fda60]{background:#dc262633;color:#fecaca}.visual-card-body[data-v-053fda60]{padding:12px 14px;display:flex;flex-direction:column;flex:1}.visual-card-title[data-v-053fda60]{font-weight:600;font-size:13px;color:var(--text-1);line-height:1.3}.visual-card-meta[data-v-053fda60]{font-size:11px;color:var(--text-3);margin-top:3px}.visual-card-mentor[data-v-053fda60]{display:flex;align-items:center;gap:5px;margin-top:8px}.visual-card-mentor span[data-v-053fda60]{font-size:11px;color:var(--text-2)}.visual-card-mentor svg[data-v-053fda60]{flex-shrink:0}.visual-card-progress[data-v-053fda60]{display:flex;align-items:center;gap:6px;margin-top:8px}.visual-progress-bar[data-v-053fda60]{flex:1;height:5px;background:var(--border-subtle);border-radius:5px;overflow:hidden}.visual-progress-fill[data-v-053fda60]{height:100%;background:var(--gradient-primary);border-radius:5px;transition:width .4s ease}.visual-progress-pct[data-v-053fda60]{font-size:11px;font-weight:700;color:var(--primary);min-width:28px;text-align:right}.bc-fallback-bg[data-v-053fda60]{background:linear-gradient(135deg,var(--purple),#a78bfa)}.course-fallback-bg[data-v-053fda60]{background:linear-gradient(135deg,#1e3a8a,var(--primary-light))}.visual-card-btn[data-v-053fda60]{margin-top:10px;width:100%;background:var(--gradient-hero);color:var(--bg-surface);border:none;padding:7px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;transition:opacity .15s}.visual-card-btn[data-v-053fda60]:hover{opacity:.9}.dash-empty[data-v-053fda60]{text-align:center;padding:40px 24px;background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:14px}.dash-empty-icon[data-v-053fda60]{font-size:2.5rem;margin-bottom:12px}.dash-empty h3[data-v-053fda60]{font-size:16px;color:var(--text-1);margin:0 0 6px}.dash-empty p[data-v-053fda60]{font-size:13px;color:var(--text-3);margin:0 0 16px}.dash-locked-hint[data-v-053fda60]{font-size:12px;color:var(--text-3);margin-top:12px;text-align:center}.dash-sidebar[data-v-053fda60]{display:flex;flex-direction:column;gap:14px}.sidebar-widget[data-v-053fda60]{background:var(--bg-card);border:1.5px solid var(--border-subtle);border-radius:14px;padding:16px;box-shadow:var(--shadow-sm)}.sidebar-widget-title[data-v-053fda60]{font-weight:600;font-size:13px;color:var(--text-1);margin-bottom:10px}.plan-header[data-v-053fda60]{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.plan-name[data-v-053fda60]{font-weight:600;font-size:14px;color:var(--text-1)}.plan-upgrade[data-v-053fda60]{font-size:11px;color:var(--primary);font-weight:600;text-decoration:none}.plan-upgrade[data-v-053fda60]:hover{text-decoration:underline}.plan-bar[data-v-053fda60]{height:5px;background:var(--border-subtle);border-radius:5px;overflow:hidden;margin-bottom:6px}.plan-bar-fill[data-v-053fda60]{height:100%;background:var(--gradient-primary);border-radius:5px}.plan-expiry-text[data-v-053fda60]{font-size:11px;color:var(--text-3)}.stats-grid[data-v-053fda60]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat-box[data-v-053fda60]{text-align:center;padding:10px 8px;background:var(--bg-hover);border-radius:10px}.stat-box-value[data-v-053fda60]{font-size:20px;font-weight:800}.stat-value--primary[data-v-053fda60]{color:var(--primary)}.stat-value--yellow[data-v-053fda60]{color:var(--yellow)}.stat-value--green[data-v-053fda60]{color:var(--green)}.stat-value--purple[data-v-053fda60]{color:var(--purple)}.stat-box-label[data-v-053fda60]{font-size:10px;color:var(--text-3);margin-top:2px}.activity-list[data-v-053fda60]{display:flex;flex-direction:column;gap:10px}.activity-item[data-v-053fda60]{display:flex;align-items:flex-start;gap:8px}.act-dot[data-v-053fda60]{width:7px;height:7px;border-radius:50%;margin-top:5px;flex-shrink:0}.dot-green[data-v-053fda60]{background:var(--green)}.dot-blue[data-v-053fda60]{background:var(--primary-light)}.dot-red[data-v-053fda60]{background:var(--red)}.dot-purple[data-v-053fda60]{background:var(--purple)}.activity-body[data-v-053fda60]{flex:1}.activity-desc[data-v-053fda60]{font-size:12px;color:var(--text-1)}.activity-time[data-v-053fda60]{font-size:10px;color:var(--text-3);margin-top:1px}.activity-empty[data-v-053fda60]{font-size:12px;color:var(--text-3);text-align:center;padding:8px 0}.activity-see-all[data-v-053fda60]{display:block;text-align:center;font-size:11px;color:var(--primary);font-weight:500;text-decoration:none;margin-top:12px;padding-top:10px;border-top:1px solid var(--border-subtle)}.activity-see-all[data-v-053fda60]:hover{text-decoration:underline}.quick-links[data-v-053fda60]{display:flex;flex-direction:column;gap:4px}.quick-link[data-v-053fda60]{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:8px;text-decoration:none;color:var(--text-2);font-size:12px;transition:background .15s}.quick-link[data-v-053fda60]:hover{background:var(--bg-hover)}.spinner[data-v-053fda60]{width:32px;height:32px;border:3px solid var(--border-subtle);border-top-color:var(--primary);border-radius:50%;animation:spin-053fda60 .8s linear infinite;margin:0 auto 12px}@keyframes spin-053fda60{to{transform:rotate(360deg)}}@media (max-width: 960px){.dash-main[data-v-053fda60]{grid-template-columns:1fr}.dash-sidebar[data-v-053fda60]{flex-direction:row;flex-wrap:wrap;gap:14px}.sidebar-widget[data-v-053fda60]{flex:1;min-width:200px}}@media (max-width: 640px){.dash-cards-grid[data-v-053fda60]{grid-template-columns:1fr}.dash-sidebar[data-v-053fda60]{flex-direction:column}.sidebar-widget[data-v-053fda60]{min-width:0}}.page-loading[data-v-bc1eb61e]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;color:var(--text-3)}.spinner[data-v-bc1eb61e]{width:36px;height:36px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-bc1eb61e .9s linear infinite}@keyframes spin-bc1eb61e{to{transform:rotate(360deg)}}.page-error[data-v-bc1eb61e]{text-align:center;padding:40px;color:var(--red)}.empty-state[data-v-bc1eb61e]{text-align:center;padding:80px 20px;color:var(--text-3)}.empty-icon[data-v-bc1eb61e]{font-size:52px;margin-bottom:14px}.filter-bar[data-v-bc1eb61e]{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px}.filter-btn[data-v-bc1eb61e]{display:flex;align-items:center;gap:7px;padding:7px 16px;border-radius:50px;font-size:13px;font-weight:500;border:1px solid var(--border-default);background:var(--bg-card);color:var(--text-2);cursor:pointer;transition:background-color .18s,color .18s,border-color .18s,box-shadow .18s,transform .18s,opacity .18s}.filter-btn[data-v-bc1eb61e]:hover{border-color:var(--border-bright);color:var(--text-1)}.filter-btn.active[data-v-bc1eb61e]{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:600}.filter-count[data-v-bc1eb61e]{background:var(--bg-surface);color:var(--text-3);font-size:11px;font-weight:700;padding:1px 6px;border-radius:10px;min-width:20px;text-align:center}.filter-btn.active .filter-count[data-v-bc1eb61e]{background:#6366f133;color:var(--primary-light)}.exams-grid[data-v-bc1eb61e]{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}@media (max-width: 768px){.exams-grid[data-v-bc1eb61e]{grid-template-columns:1fr}}.exam-card[data-v-bc1eb61e]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:14px;padding:22px;display:flex;flex-direction:column;gap:16px;transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease,opacity .2s ease;position:relative;overflow:hidden}.exam-card[data-v-bc1eb61e]: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-bc1eb61e]:hover{border-color:var(--border-bright);transform:translateY(-3px);box-shadow:var(--shadow-md)}.exam-card[data-v-bc1eb61e]:hover:before{opacity:1}.exam-card-dimmed[data-v-bc1eb61e]{opacity:.45;pointer-events:none}.exam-card-header[data-v-bc1eb61e]{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.exam-card-header h3[data-v-bc1eb61e]{color:var(--text-1);font-size:16px;font-weight:600;flex:1;line-height:1.4}.badge-muted[data-v-bc1eb61e]{background:#64748b26;color:var(--text-3)}.badge-yellow[data-v-bc1eb61e]{background:var(--yellow-bg);color:var(--yellow)}.badge-green[data-v-bc1eb61e]{background:var(--green-bg);color:var(--green)}.badge-red[data-v-bc1eb61e]{background:var(--red-bg);color:var(--red)}.badge-blue[data-v-bc1eb61e]{background:#3b82f61f;color:var(--primary-light)}.exam-description[data-v-bc1eb61e]{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-bc1eb61e]{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:var(--bg-surface);border-radius:10px;padding:14px}.exam-meta-item[data-v-bc1eb61e]{display:flex;flex-direction:column;gap:3px}.meta-label[data-v-bc1eb61e]{color:var(--text-3);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.meta-value[data-v-bc1eb61e]{color:var(--text-1);font-size:15px;font-weight:600}.exam-actions[data-v-bc1eb61e]{display:flex;gap:10px;margin-top:4px}.btn-action[data-v-bc1eb61e]{flex:1;padding:10px;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s,opacity .2s;border:none;display:flex;align-items:center;justify-content:center;gap:8px}.btn-ocean-sm[data-v-bc1eb61e]{background:var(--gradient-hero);color:#fff;box-shadow:0 2px 8px var(--primary-glow-strong)}.btn-ocean-sm[data-v-bc1eb61e]:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px var(--primary-glow-strong)}.btn-yellow[data-v-bc1eb61e]{background:var(--yellow-bg);color:var(--yellow);border:1px solid rgba(251,191,36,.3)!important}.btn-yellow[data-v-bc1eb61e]:hover:not(:disabled){filter:brightness(1.1)}.btn-muted[data-v-bc1eb61e]{background:var(--bg-hover);color:var(--text-2);border:1px solid var(--border-default)!important}.btn-muted[data-v-bc1eb61e]:hover:not(:disabled){border-color:var(--border-bright)!important;color:var(--text-1)}.btn-disabled[data-v-bc1eb61e]{background:var(--bg-surface);color:var(--text-3);border:1px solid var(--border-subtle)!important;cursor:not-allowed;opacity:.6}.btn-action[data-v-bc1eb61e]:disabled{cursor:not-allowed;opacity:.5}.btn-spinner[data-v-bc1eb61e]{width:13px;height:13px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin-bc1eb61e .7s linear infinite}.conflict-overlay[data-v-bc1eb61e]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.conflict-modal[data-v-bc1eb61e]{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:14px;padding:28px 28px 24px;max-width:420px;width:100%;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.conflict-icon[data-v-bc1eb61e]{font-size:40px;line-height:1}.conflict-modal h3[data-v-bc1eb61e]{color:var(--text-1);font-size:17px;font-weight:700}.conflict-modal p[data-v-bc1eb61e]{color:var(--text-2);font-size:14px;line-height:1.6;margin:0}.conflict-modal p strong[data-v-bc1eb61e]{color:var(--text-1)}.conflict-hint[data-v-bc1eb61e]{color:var(--text-3)!important;font-size:12px!important}.conflict-actions[data-v-bc1eb61e]{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:4px}.btn-conflict-cancel[data-v-bc1eb61e]{padding:9px 20px;background:var(--bg-card);border:1px solid var(--border-default);color:var(--text-2);border-radius:8px;font-size:13px;font-weight:500;cursor:pointer}.btn-conflict-cancel[data-v-bc1eb61e]:hover{border-color:var(--border-bright);color:var(--text-1)}.btn-conflict-go[data-v-bc1eb61e]{padding:9px 20px;background:var(--primary-glow);border:1px solid rgba(99,102,241,.3);color:var(--primary-light);border-radius:8px;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer}.btn-conflict-go[data-v-bc1eb61e]:hover{background:#6366f133}.btn-conflict-stop[data-v-bc1eb61e]{padding:9px 20px;background:var(--red-bg);border:1px solid rgba(248,113,113,.3);color:var(--red);border-radius:8px;font-size:13px;font-weight:600;cursor:pointer}.btn-conflict-stop[data-v-bc1eb61e]:hover:not(:disabled){background:#f8717133}.btn-conflict-stop[data-v-bc1eb61e]:disabled{opacity:.5;cursor:not-allowed}.card-top[data-v-bc1eb61e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.card-title[data-v-bc1eb61e]{font-size:17px;font-weight:700;color:var(--text-1);margin-bottom:6px}.card-desc[data-v-bc1eb61e]{font-size:13px;color:var(--text-2);line-height:1.5;margin-bottom:14px}.card-meta-grid[data-v-bc1eb61e]{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.meta-item[data-v-bc1eb61e]{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--text-2)}.meta-icon[data-v-bc1eb61e]{font-size:14px}.exam-card[data-v-bc1eb61e]{padding:24px}.exam-card-dimmed[data-v-bc1eb61e]{opacity:.5;pointer-events:none}.exam-actions[data-v-bc1eb61e]{margin-top:4px}.provisioning-lock-banner[data-v-36a6bee1]{position:fixed;top:0;left:0;right:0;z-index:9998;background:var(--yellow);color:#fff;text-align:center;padding:10px 16px;font-size:14px;font-weight:500}.page-loading[data-v-36a6bee1]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;color:var(--text-3)}.spinner[data-v-36a6bee1]{width:36px;height:36px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-36a6bee1 .9s linear infinite}@keyframes spin-36a6bee1{to{transform:rotate(360deg)}}.page-error[data-v-36a6bee1]{text-align:center;padding:40px;color:var(--red)}.exam-content[data-v-36a6bee1]{display:flex;flex-direction:column;gap:20px}.content-header[data-v-36a6bee1]{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap}.content-header-left[data-v-36a6bee1]{display:flex;flex-direction:column;gap:8px}.back-link[data-v-36a6bee1]{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-36a6bee1]:hover{color:var(--primary-light)}.content-header h1[data-v-36a6bee1]{color:var(--text-1);font-size:22px;font-weight:700;letter-spacing:-.4px}.btn-start[data-v-36a6bee1]{padding:12px 28px;background:var(--gradient-primary);color:#fff;border-radius:10px;font-size:14px;font-weight:600;border:none;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s,opacity .2s;display:flex;align-items:center;gap:8px;box-shadow:0 4px 14px var(--primary-glow-strong);white-space:nowrap}.btn-start[data-v-36a6bee1]:hover:not(:disabled){transform:translateY(-1px)}.btn-start[data-v-36a6bee1]:disabled{background:var(--yellow-bg);color:var(--yellow);box-shadow:none;cursor:not-allowed}.section-card[data-v-36a6bee1]{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-36a6bee1]{color:var(--text-1);font-size:16px;font-weight:600;letter-spacing:-.2px}.exam-description[data-v-36a6bee1]{color:var(--text-2);font-size:14px;line-height:1.7}.meta-row[data-v-36a6bee1]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;padding-top:4px}.meta-item[data-v-36a6bee1]{background:var(--bg-surface);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:4px}.meta-label[data-v-36a6bee1]{color:var(--text-3);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.6px}.meta-value[data-v-36a6bee1]{color:var(--text-1);font-size:18px;font-weight:700}.tasks-list[data-v-36a6bee1]{display:flex;flex-direction:column;gap:10px}.task-card[data-v-36a6bee1]{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-36a6bee1]{display:flex;justify-content:space-between;align-items:center}.task-num[data-v-36a6bee1]{color:var(--primary-light);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px}.task-pts[data-v-36a6bee1]{background:var(--yellow-bg);color:var(--yellow);padding:2px 10px;border-radius:20px;font-size:12px;font-weight:600}.task-card h3[data-v-36a6bee1]{color:var(--text-1);font-size:14px;font-weight:600}.task-card p[data-v-36a6bee1]{color:var(--text-2);font-size:13px;line-height:1.6;white-space:pre-wrap}.empty-tasks[data-v-36a6bee1]{color:var(--text-3);text-align:center;padding:32px}.exam-attempt[data-v-8cfa18f0]{height:100vh;display:flex;flex-direction:column;background:var(--bg-surface)}.page-loading[data-v-8cfa18f0]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:16px;color:var(--text-3)}.spinner[data-v-8cfa18f0]{width:36px;height:36px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-8cfa18f0 .9s linear infinite}@keyframes spin-8cfa18f0{to{transform:rotate(360deg)}}.error-state[data-v-8cfa18f0]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:20px}.upgrade-prompt[data-v-8cfa18f0]{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:32px}.upgrade-prompt p[data-v-8cfa18f0]{color:var(--text-2);font-size:15px}.error-msg[data-v-8cfa18f0]{color:var(--red);font-size:16px}.btn-back[data-v-8cfa18f0]{color:var(--primary);text-decoration:none;padding:10px 22px;border:1px solid var(--border-default);border-radius:8px;font-size:14px;font-weight:500}.btn-back[data-v-8cfa18f0]:hover{background:var(--bg-hover)}.exam-wrapper[data-v-8cfa18f0]{display:flex;flex-direction:column;height:100vh}.exam-header[data-v-8cfa18f0]{background:var(--bg-surface);border-bottom:1px solid var(--border-default);padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.header-left[data-v-8cfa18f0]{display:flex;align-items:center;gap:12px;min-width:0}.exam-badge[data-v-8cfa18f0]{background:var(--gradient-primary);color:#fff;font-size:11px;font-weight:700;letter-spacing:.08em;padding:3px 9px;border-radius:5px}.exam-title[data-v-8cfa18f0]{color:var(--text-1);font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-pill[data-v-8cfa18f0]{background:var(--primary-glow);color:var(--primary);font-size:12px;font-weight:500;padding:3px 10px;border-radius:12px;white-space:nowrap;flex-shrink:0}.header-right[data-v-8cfa18f0]{display:flex;align-items:center;gap:20px;flex-shrink:0}.timer[data-v-8cfa18f0]{color:var(--primary);font-size:22px;font-weight:700;font-family:Courier New,monospace}.timer-urgent[data-v-8cfa18f0]{color:var(--red);animation:pulse-8cfa18f0 1s infinite}@keyframes pulse-8cfa18f0{0%,to{opacity:1}50%{opacity:.55}}.btn-submit[data-v-8cfa18f0]{background:var(--gradient-primary);color:#fff;border:none;padding:9px 22px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s}.btn-submit[data-v-8cfa18f0]:hover:not(:disabled){opacity:.9}.btn-submit[data-v-8cfa18f0]:disabled{opacity:.5;cursor:not-allowed}.exam-main[data-v-8cfa18f0]{display:flex;flex:1;overflow:hidden}.terminal-pane[data-v-8cfa18f0]{flex:1;overflow:hidden;background:#0f172a;display:flex;flex-direction:column}.terminal-with-tabs[data-v-8cfa18f0]{display:flex;flex-direction:column;height:100%}.tab-bar[data-v-8cfa18f0]{display:flex;align-items:center;gap:2px;background:#0f172a;border-bottom:1px solid #1e293b;padding:4px 6px 0;height:36px;flex-shrink:0;overflow-x:auto}.tab-bar[data-v-8cfa18f0]::-webkit-scrollbar{height:0}.tab-btn[data-v-8cfa18f0]{display:flex;align-items:center;gap:7px;padding:0 10px;height:28px;border-radius:6px 6px 0 0;background:#0f172a;border:1px solid #1e293b;border-bottom:none;color:#475569;font-size:12px;cursor:pointer;white-space:nowrap;transition:color .15s,background .15s;flex-shrink:0}.tab-btn[data-v-8cfa18f0]:hover{color:#94a3b8;background:#0d1b2a}.tab-btn.tab-active[data-v-8cfa18f0]{background:#020617;color:#e2e8f0;border-color:#334155}.tab-close[data-v-8cfa18f0]{color:#475569;font-size:15px;line-height:1;padding:1px 3px;border-radius:3px;cursor:pointer}.tab-close[data-v-8cfa18f0]:hover{color:#f55;background:#ff555526}.tab-add[data-v-8cfa18f0]{width:26px;height:26px;background:transparent;border:1px dashed #1e293b;border-radius:5px;color:#38bdf8;font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:2px;transition:border-color .15s,background .15s}.tab-add[data-v-8cfa18f0]:hover{border-color:#38bdf8;background:#38bdf814}.terminals-wrap[data-v-8cfa18f0]{position:relative;flex:1;overflow:hidden;background:#020617}.terminal-slot[data-v-8cfa18f0]{position:absolute;top:0;right:0;bottom:0;left:0;display:none}.terminal-slot.terminal-visible[data-v-8cfa18f0]{display:block}.tasks-pane[data-v-8cfa18f0]{width:280px;flex-shrink:0;background:var(--bg-surface);border-left:1px solid var(--border-default);display:flex;flex-direction:column;overflow:hidden}.tasks-pane[data-v-8cfa18f0]::-webkit-scrollbar{width:6px}.tasks-pane[data-v-8cfa18f0]::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}.tasks-pane-header[data-v-8cfa18f0]{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border-default);flex-shrink:0}.tasks-pane-header h2[data-v-8cfa18f0]{color:var(--text-1);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.tasks-count[data-v-8cfa18f0]{background:var(--primary-glow);color:var(--primary);padding:2px 8px;border-radius:20px;font-size:11px;font-weight:700}.tasks-list[data-v-8cfa18f0]{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}.task-item[data-v-8cfa18f0]{border:1px solid var(--border-default);border-left:3px solid var(--primary);border-radius:8px;padding:12px 14px;background:var(--bg-surface);display:flex;flex-direction:column;gap:7px}.task-item-header[data-v-8cfa18f0]{display:flex;justify-content:space-between;align-items:center}.task-num[data-v-8cfa18f0]{width:24px;height:24px;border-radius:6px;background:var(--primary-glow);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.task-pts[data-v-8cfa18f0]{background:var(--yellow-bg);color:var(--yellow);padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600}.task-item h3[data-v-8cfa18f0]{color:var(--text-1);font-size:13px;font-weight:600}.task-item p[data-v-8cfa18f0]{color:var(--text-2);font-size:12px;line-height:1.6}.inline-code[data-v-8cfa18f0]{font-family:Courier New,monospace;font-size:11px;background:var(--bg-base);color:var(--primary);border-radius:3px;padding:1px 5px;white-space:nowrap}.nodes-panel[data-v-8cfa18f0]{border-bottom:1px solid var(--border-default);padding:12px 18px;flex-shrink:0}.nodes-panel-title[data-v-8cfa18f0]{color:var(--text-3);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.node-item[data-v-8cfa18f0]{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--bg-input);border:1px solid var(--border-subtle);border-radius:7px;margin-bottom:6px}.node-hostname[data-v-8cfa18f0]{color:var(--text-1);font-size:13px;font-weight:500}.node-cmd[data-v-8cfa18f0]{font-family:Courier New,monospace;font-size:11px;background:var(--bg-hover);color:var(--primary);border:1px solid var(--border-default);border-radius:4px;padding:2px 6px;white-space:nowrap}.modal-backdrop[data-v-8cfa18f0]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172ab3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-card[data-v-8cfa18f0]{background:var(--bg-surface);border-radius:12px;padding:28px 32px;max-width:400px;width:90%;box-shadow:var(--shadow-lg)}.modal-title[data-v-8cfa18f0]{color:var(--text-1);font-size:18px;font-weight:700;margin-bottom:10px}.modal-body[data-v-8cfa18f0]{color:var(--text-2);font-size:14px;line-height:1.6;margin-bottom:24px}.modal-actions[data-v-8cfa18f0]{display:flex;gap:10px}.btn-modal-primary[data-v-8cfa18f0]{background:var(--gradient-primary);color:#fff;border:none;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s}.btn-modal-primary[data-v-8cfa18f0]:hover{opacity:.88}.btn-modal-ghost[data-v-8cfa18f0]{background:transparent;color:var(--text-2);border:1px solid var(--border-default);padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer}.btn-modal-ghost[data-v-8cfa18f0]:hover{border-color:var(--border-bright);color:var(--text-1)}.modal-spinner[data-v-8cfa18f0]{display:flex;justify-content:center;margin-top:8px}.results-page[data-v-750a4d2c]{min-height:100vh;background:var(--bg-base);padding:40px 20px}.page-loading[data-v-750a4d2c]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px;color:var(--text-3)}.spinner[data-v-750a4d2c]{width:36px;height:36px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-750a4d2c .9s linear infinite}@keyframes spin-750a4d2c{to{transform:rotate(360deg)}}.error-state[data-v-750a4d2c]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:20px}.error-msg[data-v-750a4d2c]{color:var(--red);font-size:16px}.btn-outline[data-v-750a4d2c]{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-750a4d2c]{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.score-hero[data-v-750a4d2c]{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-750a4d2c]{background:linear-gradient(135deg,#34d39914,#10b9810a);border-color:#34d39940}.hero-fail[data-v-750a4d2c]{background:var(--bg-card)}.hero-icon[data-v-750a4d2c]{font-size:56px;line-height:1}.score-hero h1[data-v-750a4d2c]{color:var(--text-1);font-size:24px;font-weight:700;letter-spacing:-.5px}.score-display[data-v-750a4d2c]{display:flex;align-items:baseline;gap:8px}.score-num[data-v-750a4d2c]{color:var(--text-1);font-size:52px;font-weight:800;letter-spacing:-2px}.score-sep[data-v-750a4d2c]{color:var(--text-3);font-size:28px;font-weight:400}.score-max[data-v-750a4d2c]{color:var(--text-2);font-size:28px;font-weight:600}.score-pct[data-v-750a4d2c]{font-size:22px;font-weight:700;padding:4px 14px;border-radius:8px;margin-left:8px}.pct-pass[data-v-750a4d2c]{background:var(--green-bg);color:var(--green)}.pct-fail[data-v-750a4d2c]{background:var(--red-bg);color:var(--red)}.hero-meta[data-v-750a4d2c]{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;width:100%;max-width:560px}.hero-meta-item[data-v-750a4d2c]{background:var(--bg-surface);border-radius:10px;padding:12px 16px;text-align:left;display:flex;flex-direction:column;gap:4px}.meta-label[data-v-750a4d2c]{color:var(--text-3);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.6px}.meta-value[data-v-750a4d2c]{color:var(--text-1);font-size:14px;font-weight:600}.breakdown-card[data-v-750a4d2c]{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-750a4d2c]{color:var(--text-1);font-size:16px;font-weight:600}.tasks-list[data-v-750a4d2c]{display:flex;flex-direction:column;gap:10px}.task-result[data-v-750a4d2c]{border-radius:10px;padding:16px;border:1px solid;display:flex;flex-direction:column;gap:12px}.task-pass[data-v-750a4d2c]{background:#34d3990a;border-color:#34d39933}.task-fail[data-v-750a4d2c]{background:#f871710a;border-color:#f8717133}.task-result-header[data-v-750a4d2c]{display:flex;justify-content:space-between;align-items:flex-start}.task-left[data-v-750a4d2c]{display:flex;align-items:center;gap:12px}.task-badge[data-v-750a4d2c]{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-750a4d2c]{background:var(--green-bg);color:var(--green)}.badge-fail[data-v-750a4d2c]{background:var(--red-bg);color:var(--red)}.task-label[data-v-750a4d2c]{color:var(--text-3);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.6px}.task-title[data-v-750a4d2c]{color:var(--text-1);font-size:14px;font-weight:600;margin-top:2px}.task-score[data-v-750a4d2c]{display:flex;align-items:baseline;gap:4px}.pts-earned[data-v-750a4d2c]{color:var(--text-1);font-size:20px;font-weight:700}.pts-sep[data-v-750a4d2c]{color:var(--text-3);font-size:14px}.pts-total[data-v-750a4d2c]{color:var(--text-2);font-size:16px;font-weight:500}.pts-label[data-v-750a4d2c]{color:var(--text-3);font-size:12px}.results-actions[data-v-750a4d2c]{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.btn-secondary[data-v-750a4d2c]{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:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s,opacity .2s}.btn-secondary[data-v-750a4d2c]:hover{border-color:var(--border-bright);color:var(--text-1)}.upload-wrap[data-v-9a3b0003]{width:100%}.drop-zone[data-v-9a3b0003]{border:2px dashed var(--border-bright);border-radius:10px;padding:32px;text-align:center;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s,opacity .2s}.drop-zone.dragover[data-v-9a3b0003],.drop-zone[data-v-9a3b0003]:hover{border-color:var(--primary);background:var(--bg-hover)}.drop-icon[data-v-9a3b0003]{font-size:32px;margin-bottom:10px}.drop-title[data-v-9a3b0003]{font-size:14px;font-weight:600;color:var(--text-1);margin-bottom:4px}.drop-hint[data-v-9a3b0003]{font-size:12px;color:var(--text-3)}.progress-wrap[data-v-9a3b0003]{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:8px;padding:16px}.progress-header[data-v-9a3b0003]{display:flex;justify-content:space-between;font-size:13px;font-weight:600;color:var(--text-1);margin-bottom:8px}.pct[data-v-9a3b0003]{color:var(--primary)}.progress-bar[data-v-9a3b0003]{background:var(--border-subtle);border-radius:4px;height:6px}.progress-fill[data-v-9a3b0003]{background:var(--gradient-primary);height:100%;border-radius:4px;transition:width .3s}.progress-meta[data-v-9a3b0003]{font-size:11px;color:var(--text-3);margin-top:6px}.done-msg[data-v-9a3b0003]{color:var(--green);font-size:13px;font-weight:600;padding:12px;text-align:center}.error-msg[data-v-9a3b0003]{color:var(--red);font-size:13px;padding:8px}.filename[data-v-9a3b0003]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}.upload-wrap[data-v-b2125e60]{width:100%}.drop-zone[data-v-b2125e60]{border:2px dashed var(--border-bright);border-radius:10px;padding:20px;text-align:center;cursor:pointer;transition:background-color .2s,border-color .2s}.drop-zone.dragover[data-v-b2125e60],.drop-zone[data-v-b2125e60]:hover{border-color:var(--primary);background:var(--bg-hover)}.drop-icon[data-v-b2125e60]{font-size:24px;margin-bottom:6px}.drop-title[data-v-b2125e60]{font-size:12px;font-weight:600;color:var(--text-1);margin-bottom:2px}.drop-hint[data-v-b2125e60]{font-size:11px;color:var(--text-3)}.progress-wrap[data-v-b2125e60]{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:8px;padding:12px}.progress-header[data-v-b2125e60]{display:flex;justify-content:space-between;font-size:12px;font-weight:600;color:var(--text-1);margin-bottom:6px}.pct[data-v-b2125e60]{color:var(--primary)}.progress-bar[data-v-b2125e60]{background:var(--border-subtle);border-radius:4px;height:5px}.progress-fill[data-v-b2125e60]{background:var(--gradient-primary);height:100%;border-radius:4px;transition:width .3s}.progress-meta[data-v-b2125e60]{font-size:10px;color:var(--text-3);margin-top:4px}.done-msg[data-v-b2125e60]{color:var(--green);font-size:12px;font-weight:600;padding:8px;text-align:center}.error-msg[data-v-b2125e60]{color:var(--red);font-size:12px;padding:6px}.filename[data-v-b2125e60]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}.admin-layout[data-v-9cc4fb83]{display:flex;min-height:100vh;background:var(--bg-base)}.admin-sidebar[data-v-9cc4fb83]{width:256px;flex-shrink:0;background:var(--bg-surface);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:200;overflow-y:auto}.admin-sidebar-header[data-v-9cc4fb83]{padding:20px 18px 16px;border-bottom:1px solid var(--border-subtle)}.admin-logo[data-v-9cc4fb83]{display:flex;align-items:center;gap:12px}.admin-logo-mark[data-v-9cc4fb83]{width:38px;height:38px;background:var(--gradient-primary);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}.admin-logo-text[data-v-9cc4fb83]{display:flex;flex-direction:column;gap:1px}.admin-logo-name[data-v-9cc4fb83]{font-size:15px;font-weight:700;color:var(--text-1);line-height:1}.admin-logo-badge[data-v-9cc4fb83]{font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--primary);background:var(--border-subtle);padding:2px 7px;border-radius:50px;width:fit-content}.admin-nav[data-v-9cc4fb83]{flex:1;padding:12px 10px;display:flex;flex-direction:column;gap:2px}.nav-label-small[data-v-9cc4fb83]{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text-3);padding:8px 10px 6px}.admin-nav-item[data-v-9cc4fb83]{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;font-size:13.5px;font-weight:500;color:var(--text-2);cursor:pointer;transition:background-color .15s,color .15s,border-color .15s,box-shadow .15s,transform .15s,opacity .15s;position:relative;-webkit-user-select:none;user-select:none}.admin-nav-item[data-v-9cc4fb83]:hover{background:var(--primary-glow);color:var(--primary)}.admin-nav-item.active[data-v-9cc4fb83]{background:var(--primary-glow);color:var(--primary);font-weight:700;border-left:3px solid var(--primary);padding-left:9px}.admin-nav-icon[data-v-9cc4fb83]{font-size:1rem;flex-shrink:0}.admin-nav-label[data-v-9cc4fb83]{flex:1}.active-dot[data-v-9cc4fb83]{width:6px;height:6px;background:var(--primary);border-radius:50%;flex-shrink:0}.admin-sidebar-footer[data-v-9cc4fb83]{padding:10px 10px 16px;border-top:1px solid var(--border-subtle)}.back-btn[data-v-9cc4fb83]{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;font-size:13px;font-weight:600;color:var(--text-3);text-decoration:none;transition:background-color .15s,color .15s,border-color .15s,box-shadow .15s,transform .15s,opacity .15s}.back-btn[data-v-9cc4fb83]:hover{background:var(--bg-hover);color:var(--primary)}.admin-main[data-v-9cc4fb83]{flex:1;margin-left:256px;display:flex;flex-direction:column;min-width:0}.admin-topbar[data-v-9cc4fb83]{height:64px;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:100}.admin-page-title[data-v-9cc4fb83]{font-size:17px;font-weight:700;color:var(--text-1)}.admin-topbar-right[data-v-9cc4fb83]{display:flex;align-items:center;gap:12px}.admin-content[data-v-9cc4fb83]{flex:1;padding:28px;overflow-y:auto}@media (max-width: 768px){.admin-sidebar[data-v-9cc4fb83]{width:64px}.admin-logo-text[data-v-9cc4fb83],.admin-nav-label[data-v-9cc4fb83],.nav-label-small[data-v-9cc4fb83],.back-btn span[data-v-9cc4fb83]:last-child{display:none}.admin-logo-badge[data-v-9cc4fb83]{display:none}.admin-main[data-v-9cc4fb83]{margin-left:64px}.admin-nav-item[data-v-9cc4fb83]{justify-content:center;padding:10px}.admin-nav-item.active[data-v-9cc4fb83]{border-left:none;padding-left:10px;border-bottom:3px solid var(--primary)}.active-dot[data-v-9cc4fb83]{display:none}.back-btn[data-v-9cc4fb83]{justify-content:center}}.admin-content[data-v-90d1e813]{display:flex;flex-direction:column;gap:28px;animation:fadeUp .4s ease both}.header-actions[data-v-90d1e813]{display:flex;gap:10px}.btn-secondary[data-v-90d1e813]{padding:8px 18px;border-radius:8px;font-size:13px;font-weight:500;text-decoration:none;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s,opacity .2s;background:var(--bg-card);color:var(--text-2);border:1px solid var(--border-default);cursor:pointer}.btn-secondary[data-v-90d1e813]:hover{border-color:var(--border-bright);color:var(--text-1)}.btn-logout[data-v-90d1e813]{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:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s,opacity .2s}.btn-logout[data-v-90d1e813]:hover{filter:brightness(1.15)}.tab-content[data-v-90d1e813]{animation:fadeIn-90d1e813 .25s}@keyframes fadeIn-90d1e813{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.loading[data-v-90d1e813]{text-align:center;padding:60px;color:var(--text-3);font-size:14px}.error[data-v-90d1e813]{text-align:center;padding:40px;color:var(--red);font-size:14px}.stats-grid[data-v-90d1e813]{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.stat-card[data-v-90d1e813]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:14px;padding:28px 24px;text-align:center;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s,opacity .2s}.stat-card[data-v-90d1e813]:hover{border-color:var(--border-bright);transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-icon[data-v-90d1e813]{font-size:36px;margin-bottom:14px}.stat-value[data-v-90d1e813]{color:var(--primary-light);font-size:38px;font-weight:800;letter-spacing:-1.5px;margin-bottom:6px}.stat-label[data-v-90d1e813]{color:var(--text-3);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px}.section-header[data-v-90d1e813]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:12px}.section-header h2[data-v-90d1e813]{color:var(--text-1);font-size:17px;font-weight:700;letter-spacing:-.3px}.btn-primary[data-v-90d1e813]{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:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s,opacity .2s;display:inline-flex;align-items:center;gap:6px;box-shadow:0 2px 10px var(--primary-glow-strong)}.btn-primary[data-v-90d1e813]:hover{transform:translateY(-1px);filter:brightness(1.1)}.btn-primary[data-v-90d1e813]:disabled{opacity:.5;cursor:not-allowed;transform:none}.users-table[data-v-90d1e813],.attempts-table[data-v-90d1e813]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:12px;overflow:hidden}table[data-v-90d1e813]{width:100%;border-collapse:collapse}thead[data-v-90d1e813]{background:var(--bg-surface)}th[data-v-90d1e813]{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-90d1e813]{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-90d1e813]{background:var(--bg-hover)}.role-select[data-v-90d1e813],.course-select[data-v-90d1e813]{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-90d1e813]:focus,.course-select[data-v-90d1e813]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.status-badge[data-v-90d1e813]{padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px}.status-in_progress[data-v-90d1e813]{background:var(--yellow-bg);color:var(--yellow)}.status-graded[data-v-90d1e813]{background:var(--green-bg);color:var(--green)}.status-submitted[data-v-90d1e813]{background:var(--primary-glow);color:var(--primary-light)}.status-running[data-v-90d1e813]{background:var(--green-bg);color:var(--green)}.status-stopped[data-v-90d1e813]{background:var(--red-bg);color:var(--red)}.status-active[data-v-90d1e813]{background:var(--green-bg);color:var(--green)}.status-inactive[data-v-90d1e813]{background:var(--red-bg);color:var(--red)}.action-buttons[data-v-90d1e813]{display:flex;gap:6px;align-items:center}.btn-view-small[data-v-90d1e813],.btn-secondary-small[data-v-90d1e813],.btn-edit-small[data-v-90d1e813],.btn-delete-small[data-v-90d1e813],.btn-view-code[data-v-90d1e813],.btn-edit[data-v-90d1e813],.btn-icon[data-v-90d1e813]{padding:5px 11px;border-radius:6px;font-size:12px;font-weight:500;border:none;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s,opacity .2s}.btn-view-small[data-v-90d1e813],.btn-secondary-small[data-v-90d1e813],.btn-view-code[data-v-90d1e813]{background:var(--primary-glow);color:var(--primary-light);border:1px solid rgba(99,102,241,.25)}.btn-view-small[data-v-90d1e813]:hover,.btn-secondary-small[data-v-90d1e813]:hover,.btn-view-code[data-v-90d1e813]:hover{background:#6366f133}.btn-edit-small[data-v-90d1e813],.btn-edit[data-v-90d1e813]{background:#fbbf241f;color:var(--yellow);border:1px solid rgba(251,191,36,.25)}.btn-edit-small[data-v-90d1e813]:hover,.btn-edit[data-v-90d1e813]:hover{background:#fbbf2438}.btn-delete-small[data-v-90d1e813]{background:var(--red-bg);color:var(--red);border:1px solid rgba(248,113,113,.25)}.btn-delete-small[data-v-90d1e813]:hover{background:#f8717138}.btn-delete-small[data-v-90d1e813]:disabled{opacity:.3;cursor:not-allowed}.btn-icon[data-v-90d1e813]{background:#6366f11f;color:#a5b4fc}.btn-icon[data-v-90d1e813]:hover{background:#6366f140}.modal-header[data-v-90d1e813]{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.modal-header h3[data-v-90d1e813]{margin:0}.btn-close[data-v-90d1e813]{background:none;border:none;font-size:18px;cursor:pointer;color:#94a3b8;padding:2px 6px;border-radius:4px}.btn-close[data-v-90d1e813]:hover{background:#ffffff1a;color:#fff}.course-checklist[data-v-90d1e813]{display:flex;flex-direction:column;gap:10px;padding:16px 0;max-height:320px;overflow-y:auto}.course-check-item[data-v-90d1e813]{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer}.course-check-item input[type=checkbox][data-v-90d1e813]{width:16px;height:16px;cursor:pointer}.exam-access-list[data-v-90d1e813]{display:flex;flex-direction:column;gap:10px;max-height:360px;overflow-y:auto;padding-right:4px}.exam-access-row[data-v-90d1e813]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:var(--bg-surface);border-radius:8px;border:1px solid var(--border-subtle)}.exam-access-info[data-v-90d1e813]{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.exam-access-title[data-v-90d1e813]{font-size:13px;color:var(--text-1);font-weight:500}.exam-grade-badge[data-v-90d1e813]{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:5px;width:fit-content}.grade-pass[data-v-90d1e813]{background:var(--green-bg);color:var(--green)}.grade-fail[data-v-90d1e813]{background:var(--red-bg);color:var(--red)}.exam-access-actions[data-v-90d1e813]{display:flex;align-items:center;gap:8px;flex-shrink:0}.access-badge[data-v-90d1e813]{font-size:11px;font-weight:600;padding:3px 9px;border-radius:6px;text-transform:uppercase;letter-spacing:.4px}.badge-granted[data-v-90d1e813]{background:#3b82f61f;color:#60a5fa}.badge-used[data-v-90d1e813]{background:var(--green-bg);color:var(--green)}.badge-none[data-v-90d1e813]{background:var(--bg-hover);color:var(--text-3)}.btn-grant[data-v-90d1e813]{font-size:12px;font-weight:600;padding:4px 12px;background:var(--gradient-primary);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:opacity .2s}.btn-grant[data-v-90d1e813]:hover{opacity:.85}.btn-revoke[data-v-90d1e813]{font-size:12px;font-weight:600;padding:4px 12px;background:var(--red-bg);color:var(--red);border:1px solid rgba(248,113,113,.3);border-radius:6px;cursor:pointer;transition:opacity .2s}.btn-revoke[data-v-90d1e813]:hover{opacity:.8}.btn-action[data-v-90d1e813]{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-90d1e813]:hover{background:var(--bg-hover);color:var(--text-1)}.btn-stop[data-v-90d1e813]:hover{background:var(--yellow-bg);color:var(--yellow)}.btn-delete[data-v-90d1e813]:hover{background:var(--red-bg);color:var(--red)}.btn-action[data-v-90d1e813]:disabled{opacity:.3;cursor:not-allowed}.btn-action[data-v-90d1e813]:disabled:hover{background:none}.plan-badge[data-v-90d1e813]{display:inline-block;font-size:12px;font-weight:600;padding:2px 10px;border-radius:20px;white-space:nowrap}.plan-badge--active[data-v-90d1e813]{background:var(--primary-glow, rgba(99,102,241,.12));color:var(--primary, #6366f1);border:1px solid var(--primary, #6366f1)}.plan-badge--none[data-v-90d1e813]{background:var(--bg-surface);color:var(--text-3);border:1px solid var(--border-default)}.modal-overlay[data-v-90d1e813]{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-90d1e813]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:16px;padding:28px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-md)}.modal-large[data-v-90d1e813]{max-width:820px;max-height:88vh;overflow-y:auto}.modal-content h3[data-v-90d1e813]{color:var(--text-1);font-size:18px;font-weight:700;margin-bottom:22px;letter-spacing:-.3px}.modal-actions[data-v-90d1e813]{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-90d1e813]{margin-bottom:16px}.form-group label[data-v-90d1e813]{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-90d1e813],.form-group select[data-v-90d1e813],.form-group textarea[data-v-90d1e813]{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-90d1e813]:focus,.form-group select[data-v-90d1e813]:focus,.form-group textarea[data-v-90d1e813]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.secondary-node-row[data-v-90d1e813]{display:flex;gap:8px;align-items:center;margin-bottom:8px}.secondary-node-row input[data-v-90d1e813]{flex:1;padding:7px 10px;background:var(--bg-base);border:1px solid var(--border-default);border-radius:7px;color:var(--text-1);font-size:13px}.secondary-node-row input[data-v-90d1e813]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.btn-remove-node[data-v-90d1e813]{padding:6px 10px;background:var(--red-bg);border:1px solid var(--border-default);color:var(--red);border-radius:7px;font-size:13px;cursor:pointer;flex-shrink:0}.btn-remove-node[data-v-90d1e813]:hover{background:#ef444433}.btn-add-node[data-v-90d1e813]{padding:6px 14px;background:var(--primary-glow);border:1px solid rgba(99,102,241,.3);color:var(--primary-light);border-radius:7px;font-size:13px;cursor:pointer}.btn-add-node[data-v-90d1e813]:hover{background:#6366f133}.info-message[data-v-90d1e813]{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-90d1e813],.images-table[data-v-90d1e813],.containers-table[data-v-90d1e813],.sandboxes-table[data-v-90d1e813],.templates-table[data-v-90d1e813]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:12px;overflow:hidden}.task-meta[data-v-90d1e813]{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:10px;padding:16px;margin:14px 0}.task-meta p[data-v-90d1e813]{color:var(--text-2);margin:7px 0;font-size:13px}.task-description[data-v-90d1e813]{color:var(--text-3);font-style:italic}.verification-code[data-v-90d1e813]{margin:18px 0}.verification-code h4[data-v-90d1e813]{color:var(--text-1);font-size:14px;font-weight:600;margin-bottom:10px}.verification-code pre[data-v-90d1e813]{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-90d1e813]{color:var(--text-2);font-family:JetBrains Mono,Courier New,monospace;font-size:12px;line-height:1.7}.sub-tabs[data-v-90d1e813]{display:flex;gap:2px;margin-bottom:22px;border-bottom:1px solid var(--border-subtle)}.sub-tab-btn[data-v-90d1e813]{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:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s,opacity .2s;margin-bottom:-1px}.sub-tab-btn[data-v-90d1e813]:hover{color:var(--text-1);background:var(--bg-hover)}.sub-tab-btn.active[data-v-90d1e813]{color:var(--primary-light);border-bottom-color:var(--primary)}.sub-tab-content[data-v-90d1e813]{animation:fadeIn-90d1e813 .25s}.section-header .header-actions[data-v-90d1e813]{display:flex;gap:10px;align-items:center}.markdown-path[data-v-90d1e813]{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}.history-chart-wrap[data-v-90d1e813]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:10px;padding:16px 18px;margin-bottom:18px}.history-chart-header[data-v-90d1e813]{display:flex;align-items:center;margin-bottom:12px}.history-chart-label[data-v-90d1e813]{font-size:13px;font-weight:600;color:var(--text-2)}.history-chart-loading[data-v-90d1e813]{height:180px;display:flex;align-items:center;justify-content:center;color:var(--text-3);font-size:13px}.container-summary[data-v-90d1e813]{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-90d1e813]{display:flex;gap:8px;align-items:center}.summary-label[data-v-90d1e813]{color:var(--text-3);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.summary-value[data-v-90d1e813]{color:var(--primary-light);font-size:18px;font-weight:700}.container-name[data-v-90d1e813]{display:flex;align-items:center;gap:8px}.container-name code[data-v-90d1e813]{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-90d1e813]{font-size:14px;cursor:help}.type-badge[data-v-90d1e813]{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;text-transform:capitalize}.type-sandbox[data-v-90d1e813]{background:var(--primary-glow);color:var(--primary-light)}.type-exam[data-v-90d1e813]{background:var(--yellow-bg);color:var(--yellow)}.type-laboratory[data-v-90d1e813]{background:#a78bfa1f;color:#a78bfa}.related-name[data-v-90d1e813]{color:var(--text-1);font-size:13px}.sandbox-type[data-v-90d1e813]{color:var(--text-3);font-size:12px;font-style:italic}.text-muted[data-v-90d1e813]{color:var(--text-3)}.fingerprint[data-v-90d1e813]{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-90d1e813]{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.alias-badge[data-v-90d1e813]{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-90d1e813]{background:var(--primary-glow);color:var(--primary-light);border-color:#6366f14d}.image-description[data-v-90d1e813]{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2);font-size:12px}.activity-details[data-v-90d1e813]{display:flex;flex-direction:column;gap:20px;margin:16px 0}.activity-section h4[data-v-90d1e813]{color:var(--text-1);font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.activity-card[data-v-90d1e813]{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;padding:14px}.activity-card p[data-v-90d1e813]{color:var(--text-2);margin:6px 0;font-size:13px}.activity-card strong[data-v-90d1e813]{color:var(--text-3);margin-right:6px}.no-activity[data-v-90d1e813]{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-90d1e813]{font-size:11px;color:var(--text-3);max-width:150px;overflow:hidden;text-overflow:ellipsis}.templates-table .checkbox[data-v-90d1e813]{cursor:pointer;width:17px;height:17px;accent-color:var(--primary)}.empty-state[data-v-90d1e813]{text-align:center;padding:60px 20px;color:var(--text-3)}.empty-state p[data-v-90d1e813]{margin:0;font-size:14px}.checkbox-label[data-v-90d1e813]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none}.video-badge[data-v-90d1e813]{display:inline-block;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap}.video-badge--youtube[data-v-90d1e813]{background:var(--red-bg);color:var(--red)}.video-badge--hls[data-v-90d1e813]{background:var(--primary-glow);color:var(--primary)}.video-badge--processing[data-v-90d1e813]{background:var(--yellow-bg);color:var(--yellow)}.video-badge--none[data-v-90d1e813]{background:var(--bg-hover);color:var(--text-3)}.video-section-divider[data-v-90d1e813]{display:flex;align-items:center;gap:12px;margin:20px 0 16px;color:var(--text-3);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px}.video-section-divider[data-v-90d1e813]:before,.video-section-divider[data-v-90d1e813]:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.source-toggle[data-v-90d1e813]{display:flex;gap:4px;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:8px;padding:3px}.source-btn[data-v-90d1e813]{flex:1;padding:7px 14px;border-radius:6px;border:none;background:transparent;color:var(--text-3);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.source-btn.active[data-v-90d1e813]{background:var(--primary);color:#fff}.source-btn[data-v-90d1e813]:not(.active):hover{background:var(--bg-hover);color:var(--text-1)}.form-hint[data-v-90d1e813]{font-size:11px;color:var(--text-3);margin-top:5px}.video-ready-row[data-v-90d1e813]{display:flex;align-items:center;gap:10px}.transcoding-status[data-v-90d1e813]{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;padding:10px 14px;display:flex;flex-direction:column;gap:6px}.transcoding-row[data-v-90d1e813]{font-size:12px;color:var(--yellow);display:flex;align-items:center;gap:8px}.spinner[data-v-90d1e813]{display:inline-block;animation:spin-90d1e813 1s linear infinite}@keyframes spin-90d1e813{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.bc-video-add-form[data-v-90d1e813]{background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:10px;padding:16px;margin-top:8px}.bc-video-list[data-v-90d1e813]{margin-top:8px;display:flex;flex-direction:column;gap:6px}.bc-video-item[data-v-90d1e813]{background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:8px;padding:10px 12px}.bc-video-item-header[data-v-90d1e813]{display:flex;align-items:center;justify-content:space-between;gap:8px}.bc-video-item-info[data-v-90d1e813]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1;min-width:0}.bc-video-item-title[data-v-90d1e813]{font-size:13px;font-weight:600;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.bc-video-item-duration[data-v-90d1e813]{font-size:11px;color:var(--text-3);white-space:nowrap}.bc-video-status-area[data-v-90d1e813]{margin-top:8px;padding-top:8px;border-top:1px solid var(--border-subtle)}.bc-video-error-msg[data-v-90d1e813]{font-size:12px;color:var(--red);margin-bottom:8px;padding:6px 10px;background:var(--red-bg);border-radius:6px}.video-badge--error[data-v-90d1e813]{background:var(--red-bg);color:var(--red)}.bc-topic-panel[data-v-90d1e813]{background:var(--bg-base);border:1px solid var(--border-subtle);border-radius:10px;padding:14px;margin-top:8px}.bc-btn-active[data-v-90d1e813]{border-color:var(--primary)!important;color:var(--primary)!important;background:var(--primary-glow)!important}.bc-quiz-question[data-v-90d1e813]{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;padding:10px;margin-bottom:8px}.bc-quiz-q-header[data-v-90d1e813]{display:flex;align-items:flex-start;gap:8px}.bc-quiz-q-num[data-v-90d1e813]{font-size:13px;font-weight:700;color:var(--primary);min-width:20px}.bc-quiz-choices[data-v-90d1e813]{margin-top:8px;padding-left:20px;display:flex;flex-direction:column;gap:4px}.bc-quiz-choice[data-v-90d1e813]{display:flex;align-items:center;gap:4px;padding:4px 6px;border-radius:6px;background:var(--bg-base);border:1px solid var(--border-subtle);transition:border-color .15s,background .15s}.bc-quiz-choice input[type=radio][data-v-90d1e813]{margin:0;flex-shrink:0;width:14px;height:14px}.bc-quiz-choice.correct[data-v-90d1e813]{border-color:var(--green);background:#10b9810f}.bc-quiz-add-choice[data-v-90d1e813]{display:flex;gap:4px;margin-top:4px}.bc-quiz-add-question[data-v-90d1e813]{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-subtle)}.bc-lab-linked[data-v-90d1e813]{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;background:var(--bg-surface);border-radius:8px;border:1px solid var(--border-subtle)}.bc-lab-linked-info[data-v-90d1e813]{display:flex;align-items:center;gap:10px}.bc-admin-status[data-v-90d1e813]{font-size:11px;padding:2px 8px;border-radius:12px;font-weight:600}.bc-admin-status-passive[data-v-90d1e813]{background:var(--bg-base);color:var(--text-3)}.bc-admin-status-planned[data-v-90d1e813]{background:var(--purple-bg);color:var(--purple)}.bc-admin-status-coming_soon[data-v-90d1e813]{background:var(--yellow-bg);color:var(--yellow)}.bc-admin-status-active[data-v-90d1e813]{background:var(--green-bg);color:var(--green)}.bc-admin-status-in_progress[data-v-90d1e813]{background:var(--primary-glow);color:var(--primary)}.bc-admin-status-completed[data-v-90d1e813]{background:var(--purple-bg);color:var(--purple)}.inline-edit-input[data-v-90d1e813]{background:transparent;border:1px solid transparent;border-radius:4px;padding:2px 6px;color:var(--text-1);width:100%;transition:border-color .15s,background .15s}.inline-edit-input[data-v-90d1e813]:hover{border-color:var(--border-subtle)}.inline-edit-input[data-v-90d1e813]:focus{outline:none;border-color:var(--primary);background:var(--bg-base)}.linked-chip[data-v-90d1e813]{display:inline-block;font-size:11px;padding:2px 8px;border-radius:10px;white-space:nowrap}.linked-course[data-v-90d1e813]{background:#dbeafe;color:#1e40af}.linked-bootcamp[data-v-90d1e813]{background:#fef3c7;color:#92400e}.bc-video-fields[data-v-90d1e813]{display:flex;flex-direction:column;gap:4px;margin-top:6px;padding-top:6px;border-top:1px solid var(--border-subtle)}.loading[data-v-fda92d78]{padding:40px;text-align:center;color:var(--text-3)}.error[data-v-fda92d78]{padding:40px;text-align:center;color:var(--red)}.profile-content[data-v-fda92d78]{display:flex;flex-direction:column;gap:20px}.profile-hero[data-v-fda92d78]{padding:28px 32px}.profile-hero-inner[data-v-fda92d78]{display:flex;align-items:center;gap:20px}.hero-avatar-img[data-v-fda92d78]{width:72px;height:72px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.4)}.hero-avatar-placeholder[data-v-fda92d78]{width:72px;height:72px;border-radius:50%;background:#fff3;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700;color:var(--bg-surface)}.profile-section[data-v-fda92d78]{padding:28px}.profile-section h2[data-v-fda92d78]{font-size:18px;font-weight:700;color:var(--text-1);margin-bottom:20px}.avatar-container[data-v-fda92d78]{display:flex;gap:28px;align-items:center}.avatar-preview[data-v-fda92d78]{flex-shrink:0}.avatar-img[data-v-fda92d78],.avatar-placeholder[data-v-fda92d78]{width:110px;height:110px;border-radius:50%;object-fit:cover;border:3px solid var(--border-default)}.avatar-placeholder[data-v-fda92d78]{display:flex;align-items:center;justify-content:center;background:var(--primary-glow);color:var(--primary);font-size:44px;font-weight:700}.avatar-actions[data-v-fda92d78]{display:flex;flex-direction:column;gap:10px}.btn-delete[data-v-fda92d78]{background:transparent;color:var(--red);border:1.5px solid var(--red);padding:10px 20px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,transform .2s,opacity .2s}.btn-delete[data-v-fda92d78]:hover{background:var(--red-bg)}.avatar-hint[data-v-fda92d78]{color:var(--text-3);font-size:12px;margin:0}.form-grid[data-v-fda92d78]{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}@media (max-width: 768px){.form-grid[data-v-fda92d78]{grid-template-columns:1fr}.avatar-container[data-v-fda92d78]{flex-direction:column;align-items:flex-start}}.form-group[data-v-fda92d78]{display:flex;flex-direction:column;gap:6px}.input-disabled[data-v-fda92d78]{opacity:.5;cursor:not-allowed}.field-hint[data-v-fda92d78]{color:var(--text-3);font-size:12px;margin:0}.form-actions[data-v-fda92d78]{display:flex;justify-content:flex-start;gap:12px;margin-top:4px}.success-message[data-v-fda92d78],.error-message[data-v-fda92d78]{padding:14px 16px;border-radius:10px;font-size:14px;text-align:center}.success-message[data-v-fda92d78]{background:var(--green-bg);border:1px solid var(--green);color:var(--green)}.error-message[data-v-fda92d78]{background:var(--red-bg);border:1px solid var(--red);color:var(--red)}.passkey-list[data-v-fda92d78]{display:flex;flex-direction:column;gap:8px}.passkey-item[data-v-fda92d78]{display:flex;align-items:center;justify-content:space-between;padding:12px;background:var(--bg-base);border-radius:10px;border:1px solid var(--border-subtle)}.passkey-info[data-v-fda92d78]{display:flex;align-items:center;gap:10px}.passkey-name[data-v-fda92d78]{font-weight:600;font-size:14px;color:var(--text-1)}.passkey-date[data-v-fda92d78]{font-size:12px;color:var(--text-3)}.passkey-empty[data-v-fda92d78]{font-size:14px;color:var(--text-3);padding:12px 0}.section-desc[data-v-fda92d78]{font-size:13px;color:var(--text-3);margin:0 0 16px}.btn-ocean[data-v-fda92d78]:focus-visible,.btn-delete[data-v-fda92d78]:focus-visible,.btn-secondary[data-v-fda92d78]:focus-visible,.btn-delete-small[data-v-fda92d78]:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.page-loading[data-v-74627230]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;color:var(--text-3)}.spinner[data-v-74627230]{width:36px;height:36px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-74627230 .9s linear infinite}@keyframes spin-74627230{to{transform:rotate(360deg)}}.page-error[data-v-74627230]{text-align:center;padding:40px;color:var(--red)}.lesson-content[data-v-74627230]{display:flex;flex-direction:column;gap:20px}.filter-bar[data-v-74627230]{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-74627230]{color:var(--text-2);font-size:13px;font-weight:500;white-space:nowrap}.filter-select[data-v-74627230]{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-74627230]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.progress-banner[data-v-74627230]{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-74627230]{display:flex;flex-direction:column;gap:2px;min-width:140px}.progress-banner-title[data-v-74627230]{color:var(--text-2);font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.progress-banner-count[data-v-74627230]{color:var(--text-1);font-size:15px;font-weight:600}.progress-track[data-v-74627230]{flex:1;height:6px;background:var(--bg-hover);border-radius:10px;overflow:hidden}.progress-fill[data-v-74627230]{height:100%;background:var(--gradient-primary);border-radius:10px;transition:width .5s ease}.progress-pct[data-v-74627230]{color:var(--primary-light);font-size:13px;font-weight:600;min-width:38px;text-align:right}.empty-state[data-v-74627230]{text-align:center;padding:60px 20px;color:var(--text-3)}.empty-icon[data-v-74627230]{font-size:48px;margin-bottom:12px}.lessons-grid[data-v-74627230]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}@media (max-width: 768px){.lessons-grid[data-v-74627230]{grid-template-columns:1fr}}.lesson-card[data-v-74627230]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:14px;padding:22px;text-decoration:none;color:inherit;transition:background-color .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease,opacity .2s ease;display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden}.lesson-card[data-v-74627230]: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-74627230]:hover{border-color:var(--border-bright);transform:translateY(-3px);box-shadow:var(--shadow-md)}.lesson-card[data-v-74627230]:hover:before{opacity:1}.lesson-card-top[data-v-74627230]{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.lesson-card h3[data-v-74627230]{color:var(--text-1);font-size:16px;font-weight:600;margin:0;flex:1;line-height:1.4}.lesson-meta[data-v-74627230]{display:flex;gap:8px;flex-wrap:wrap}.meta-chip[data-v-74627230]{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-74627230]{display:flex;justify-content:flex-end;padding-top:10px;border-top:1px solid var(--border-subtle)}.card-link[data-v-74627230]{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-74627230]{text-decoration:underline}.course-status-badge[data-v-74627230]{display:inline-block;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.3px}.course-status-planned[data-v-74627230]{background:var(--bg-surface);color:var(--text-2);border:1px solid var(--border-default)}.course-status-coming_soon[data-v-74627230]{background:var(--yellow-bg);color:var(--yellow);border:1px solid var(--yellow)}.loading[data-v-7ed4e5bf],.error[data-v-7ed4e5bf]{text-align:center;padding:40px;font-size:16px;color:var(--text-3)}.error[data-v-7ed4e5bf]{color:var(--red)}.back-link[data-v-7ed4e5bf]{margin-bottom:20px}.btn-back[data-v-7ed4e5bf]{background:var(--bg-hover);color:var(--text-2);padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;text-decoration:none;transition:background-color .2s,color .2s,border-color .2s;display:inline-block;border:1px solid var(--border-default)}.btn-back[data-v-7ed4e5bf]:hover{background:var(--bg-surface);color:var(--primary);border-color:var(--primary)}.lesson-container[data-v-7ed4e5bf]{display:flex;flex-direction:column;gap:24px}.lesson-info-bar[data-v-7ed4e5bf]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:12px;padding:20px;display:flex;gap:30px;flex-wrap:wrap}.info-item[data-v-7ed4e5bf]{display:flex;flex-direction:column;gap:4px}.info-label[data-v-7ed4e5bf]{color:var(--text-3);font-size:12px;text-transform:uppercase;font-weight:500}.info-value[data-v-7ed4e5bf]{color:var(--text-1);font-size:14px;font-weight:500}.status-completed[data-v-7ed4e5bf]{color:var(--green);font-size:14px;font-weight:500}.status-incomplete[data-v-7ed4e5bf]{color:var(--text-3);font-size:14px}.completed-date[data-v-7ed4e5bf]{color:var(--text-3);font-size:12px;font-weight:400;margin-left:4px}.lesson-content[data-v-7ed4e5bf]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:14px;padding:40px}.markdown-content[data-v-7ed4e5bf]{color:var(--text-1);line-height:1.8;font-size:16px}.markdown-content[data-v-7ed4e5bf] h1{color:var(--text-1);font-size:32px;font-weight:700;margin:32px 0 16px;padding-bottom:12px;border-bottom:2px solid var(--border-default)}.markdown-content[data-v-7ed4e5bf] h1:first-child{margin-top:0}.markdown-content[data-v-7ed4e5bf] h2{color:var(--text-1);font-size:24px;font-weight:600;margin:28px 0 14px}.markdown-content[data-v-7ed4e5bf] h3{color:var(--text-1);font-size:20px;font-weight:600;margin:24px 0 12px}.markdown-content[data-v-7ed4e5bf] p{margin:16px 0;color:var(--text-2)}.markdown-content[data-v-7ed4e5bf] ul,.markdown-content[data-v-7ed4e5bf] ol{margin:16px 0;padding-left:24px;color:var(--text-2)}.markdown-content[data-v-7ed4e5bf] li{margin:8px 0}.markdown-content[data-v-7ed4e5bf] code{background:var(--primary-glow);color:var(--primary);padding:2px 6px;border-radius:4px;font-family:JetBrains Mono,Courier New,monospace;font-size:14px}.markdown-content[data-v-7ed4e5bf] pre{background:var(--bg-base);border:1px solid var(--border-default);border-radius:8px;padding:16px;overflow-x:auto;margin:16px 0}.markdown-content[data-v-7ed4e5bf] pre code{background:none;color:var(--text-1);padding:0}.markdown-content[data-v-7ed4e5bf] blockquote{border-left:4px solid var(--primary);padding-left:16px;margin:16px 0;color:var(--text-3);font-style:italic}.markdown-content[data-v-7ed4e5bf] strong{color:var(--text-1);font-weight:600}.markdown-content[data-v-7ed4e5bf] a{color:var(--primary);text-decoration:none}.markdown-content[data-v-7ed4e5bf] a:hover{text-decoration:underline}.lesson-actions[data-v-7ed4e5bf]{display:flex;justify-content:center;padding:20px 0}.btn-complete[data-v-7ed4e5bf]{background:var(--green);color:#fff;padding:14px 36px;border-radius:12px;font-size:15px;font-weight:600;border:none;cursor:pointer;transition:opacity .2s,transform .2s}.btn-complete[data-v-7ed4e5bf]:hover{opacity:.9;transform:translateY(-2px)}.btn-complete[data-v-7ed4e5bf]:disabled{opacity:.5;cursor:not-allowed;transform:none}.completion-message[data-v-7ed4e5bf]{background:var(--green-bg);border:1px solid var(--green);color:var(--green);padding:16px 32px;border-radius:12px;font-size:15px;font-weight:500}.success-message[data-v-7ed4e5bf],.error-message[data-v-7ed4e5bf]{padding:16px;border-radius:8px;font-size:14px;text-align:center}.success-message[data-v-7ed4e5bf]{background:var(--green-bg);border:1px solid var(--green);color:var(--green)}.error-message[data-v-7ed4e5bf]{background:var(--red-bg);border:1px solid var(--red);color:var(--red)}@media (max-width: 768px){.lesson-content[data-v-7ed4e5bf]{padding:24px}.lesson-info-bar[data-v-7ed4e5bf]{flex-direction:column;gap:16px}}.state-center[data-v-1262bc25]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:12px;color:var(--text-3)}.spinner[data-v-1262bc25]{width:32px;height:32px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-1262bc25 .7s linear infinite}@keyframes spin-1262bc25{to{transform:rotate(360deg)}}.state-error[data-v-1262bc25]{color:var(--red)}.courses-page[data-v-1262bc25]{display:flex;flex-direction:column;gap:20px}.page-header[data-v-1262bc25]{margin-bottom:4px}.page-header h1[data-v-1262bc25]{font-size:28px;font-weight:800;color:var(--text-1);margin:0 0 4px}.page-subtitle[data-v-1262bc25]{font-size:14px;color:var(--text-3);margin:0}.toolbar[data-v-1262bc25]{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.search-wrap[data-v-1262bc25]{position:relative;flex:1;min-width:200px}.search-icon[data-v-1262bc25]{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-3);pointer-events:none}.search-input[data-v-1262bc25]{width:100%;padding:11px 36px 11px 42px;border:1.5px solid var(--border-default);border-radius:10px;background:var(--bg-card);color:var(--text-1);font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s}.search-input[data-v-1262bc25]::placeholder{color:var(--text-3)}.search-input[data-v-1262bc25]:focus{border-color:var(--primary);box-shadow:0 0 0 3px #1d4ed814}.search-clear[data-v-1262bc25]{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-3);cursor:pointer;font-size:14px;padding:4px}.search-clear[data-v-1262bc25]:hover{color:var(--text-1)}.filter-controls[data-v-1262bc25]{display:flex;gap:8px;flex-shrink:0}.filter-select[data-v-1262bc25]{padding:10px 32px 10px 14px;border:1.5px solid var(--border-default);border-radius:10px;background:var(--bg-card);color:var(--text-1);font-size:13px;cursor:pointer;outline:none;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;transition:border-color .2s}.filter-select[data-v-1262bc25]:focus{border-color:var(--primary)}.results-meta[data-v-1262bc25]{font-size:13px;color:var(--text-3)}.empty-state[data-v-1262bc25]{text-align:center;padding:60px 20px;color:var(--text-3)}.btn-reset[data-v-1262bc25]{margin-top:12px;padding:8px 20px;border:1.5px solid var(--border-default);border-radius:8px;background:var(--bg-card);color:var(--text-2);font-size:13px;cursor:pointer;transition:all .15s}.btn-reset[data-v-1262bc25]:hover{border-color:var(--primary);color:var(--primary)}.courses-grid[data-v-1262bc25]{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.course-card[data-v-1262bc25]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:16px;overflow:hidden;cursor:pointer;transition:border-color .2s,box-shadow .25s,transform .2s;display:flex;flex-direction:column}.course-card[data-v-1262bc25]:hover{border-color:var(--primary);box-shadow:0 8px 30px #1d4ed81a;transform:translateY(-3px)}.card-image[data-v-1262bc25]{position:relative;height:180px;background:var(--bg-surface);display:flex;align-items:center;justify-content:center;overflow:hidden}.card-img[data-v-1262bc25]{width:100%;height:100%;object-fit:cover}.card-emoji[data-v-1262bc25]{font-size:4rem;line-height:1;filter:drop-shadow(0 2px 8px rgba(0,0,0,.15))}.card-badges[data-v-1262bc25]{position:absolute;top:12px;left:12px;display:flex;gap:5px;flex-wrap:wrap}.plan-badge[data-v-1262bc25]{font-size:11px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;border-radius:6px;padding:4px 10px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.badge-free[data-v-1262bc25]{background:#10b981e6;color:#fff}.badge-basic[data-v-1262bc25]{background:#8b5cf6e6;color:#fff}.badge-plan2[data-v-1262bc25]{background:#f59e0be6;color:#fff}.badge-plan3[data-v-1262bc25]{background:#ef4444e6;color:#fff}.status-badge[data-v-1262bc25]{font-size:11px;font-weight:600;border-radius:6px;padding:4px 10px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.status-planned[data-v-1262bc25]{background:#8b5cf6d9;color:#fff}.status-coming_soon[data-v-1262bc25]{background:#f59e0bd9;color:#fff}.status-passive[data-v-1262bc25]{background:var(--bg-hover);color:var(--text-3)}.card-lock[data-v-1262bc25]{position:absolute;top:12px;right:12px;display:flex;align-items:center;gap:5px;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:6px;padding:4px 10px;color:#fff}.card-lock svg[data-v-1262bc25]{flex-shrink:0}.upgrade-link[data-v-1262bc25]{font-size:11px;font-weight:600;color:#fff;text-decoration:none;transition:color .15s}.upgrade-link[data-v-1262bc25]:hover{color:var(--border-bright)}.card-body[data-v-1262bc25]{padding:18px;display:flex;flex-direction:column;gap:8px;flex:1}.card-title[data-v-1262bc25]{font-size:17px;font-weight:700;color:var(--text-1);margin:0;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-authors[data-v-1262bc25]{display:flex;align-items:center;gap:5px}.card-authors svg[data-v-1262bc25]{flex-shrink:0}.author-names[data-v-1262bc25]{font-size:12px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-spacer[data-v-1262bc25]{flex:1}.card-meta[data-v-1262bc25]{display:flex;gap:10px}.meta-chip[data-v-1262bc25]{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-3)}.meta-chip svg[data-v-1262bc25]{flex-shrink:0}.card-progress[data-v-1262bc25]{display:flex;align-items:center;gap:8px;margin-top:4px}.progress-track[data-v-1262bc25]{flex:1;height:5px;background:var(--border-subtle);border-radius:5px;overflow:hidden}.progress-fill[data-v-1262bc25]{height:100%;background:var(--primary);border-radius:5px;transition:width .5s ease}.progress-fill.progress-complete[data-v-1262bc25]{background:var(--green)}.progress-label[data-v-1262bc25]{font-size:12px;font-weight:700;color:var(--primary);min-width:32px;text-align:right}.progress-label-complete[data-v-1262bc25]{color:var(--green)}@media (max-width: 1100px){.courses-grid[data-v-1262bc25]{grid-template-columns:repeat(2,1fr)}}@media (max-width: 700px){.courses-grid[data-v-1262bc25]{grid-template-columns:1fr}.toolbar[data-v-1262bc25]{flex-direction:column}.search-wrap[data-v-1262bc25]{min-width:100%}.filter-controls[data-v-1262bc25]{width:100%}.filter-select[data-v-1262bc25]{flex:1}.card-image[data-v-1262bc25]{height:160px}}.video-player-wrap[data-v-6955f743]{position:relative;background:#000;border-radius:8px;overflow:hidden;aspect-ratio:16/9}.video-el[data-v-6955f743]{width:100%;height:100%;display:block}.player-overlay[data-v-6955f743]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:12px;color:#fff;background:#000000b3;font-size:14px}.btn-retry[data-v-6955f743]{background:var(--primary);color:#fff;border:none;border-radius:6px;padding:6px 14px;cursor:pointer;font-size:13px}.quality-bar[data-v-6955f743]{position:absolute;bottom:48px;right:12px}.quality-select[data-v-6955f743]{background:#000000b3;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:4px;font-size:12px;padding:3px 6px;cursor:pointer}.note-editor[data-v-4209ddda]{background:var(--bg-input);border:1px solid var(--border-default);border-radius:8px;overflow:hidden}.editor-toolbar[data-v-4209ddda]{display:flex;gap:2px;padding:6px 8px;border-bottom:1px solid var(--border-default);background:var(--bg-hover);flex-wrap:wrap}.toolbar-btn[data-v-4209ddda]{background:none;border:1px solid transparent;border-radius:4px;padding:4px 8px;cursor:pointer;font-size:12px;font-weight:600;color:var(--text-3);min-width:28px}.toolbar-btn[data-v-4209ddda]:hover{background:var(--border-default);color:var(--text-1)}.toolbar-btn.is-active[data-v-4209ddda]{background:var(--primary, #1d4ed8);color:#fff;border-color:var(--primary, #1d4ed8)}.editor-content[data-v-4209ddda]{min-height:80px;max-height:200px;overflow-y:auto;padding:0}.editor-content[data-v-4209ddda] .tiptap-editor{padding:10px 12px;outline:none;font-size:14px;line-height:1.6;color:var(--text-1)}.editor-content[data-v-4209ddda] .tiptap-editor p{margin:0 0 4px}.editor-content[data-v-4209ddda] .tiptap-editor code{background:var(--bg-hover);padding:1px 4px;border-radius:3px;font-size:13px}.editor-content[data-v-4209ddda] .tiptap-editor pre{background:var(--bg-hover);padding:8px 10px;border-radius:4px;overflow-x:auto;font-size:13px}.editor-content[data-v-4209ddda] .tiptap-editor h3{font-size:15px;font-weight:600;margin:8px 0 4px}.editor-content[data-v-4209ddda] .tiptap-editor ul,.editor-content[data-v-4209ddda] .tiptap-editor ol{padding-left:20px;margin:4px 0}.editor-content[data-v-4209ddda] .tiptap-editor a{color:var(--primary, #1d4ed8);text-decoration:underline}.editor-error[data-v-4209ddda]{padding:6px 12px;color:var(--red, #ef4444);font-size:12px;background:var(--red-bg)}.editor-footer[data-v-4209ddda]{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid var(--border-default);background:var(--bg-hover)}.editor-timestamp[data-v-4209ddda]{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--primary, #1d4ed8);font-weight:600}.editor-actions[data-v-4209ddda]{display:flex;gap:8px}.btn-cancel[data-v-4209ddda]{background:none;border:1px solid var(--border-default);border-radius:6px;padding:5px 14px;font-size:13px;cursor:pointer;color:var(--text-3)}.btn-cancel[data-v-4209ddda]:hover{background:var(--border-default)}.btn-save[data-v-4209ddda]{background:var(--primary, #1d4ed8);color:#fff;border:none;border-radius:6px;padding:5px 16px;font-size:13px;font-weight:500;cursor:pointer}.btn-save[data-v-4209ddda]:hover{opacity:.9}.btn-save[data-v-4209ddda]:disabled{opacity:.6;cursor:not-allowed}.video-notes[data-v-5cda7577]{margin-top:16px;border:1px solid var(--border-default);border-radius:10px;background:var(--bg-surface);overflow:hidden}.notes-header[data-v-5cda7577]{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border-default);background:var(--bg-input)}.notes-title[data-v-5cda7577]{display:flex;align-items:center;gap:8px}.notes-label[data-v-5cda7577]{font-size:13px;font-weight:600;color:var(--text-1)}.notes-count[data-v-5cda7577]{background:var(--border-default);padding:0 7px;border-radius:10px;font-size:11px;color:var(--text-3);font-weight:500}.notes-actions[data-v-5cda7577]{display:flex;align-items:center;gap:8px}.btn-add-note[data-v-5cda7577]{background:var(--primary, #1d4ed8);color:#fff;border:none;border-radius:6px;padding:5px 14px;font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap}.btn-add-note[data-v-5cda7577]:hover{opacity:.9}.menu-wrap[data-v-5cda7577]{position:relative}.btn-menu[data-v-5cda7577]{background:none;border:1px solid var(--border-default);border-radius:6px;padding:3px 8px;font-size:16px;cursor:pointer;color:var(--text-3);line-height:1}.btn-menu[data-v-5cda7577]:hover{background:var(--border-default)}.dropdown-menu[data-v-5cda7577]{position:absolute;right:0;top:calc(100% + 4px);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:8px;padding:4px 0;min-width:200px;box-shadow:var(--shadow-lg);z-index:20}.menu-item[data-v-5cda7577]{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;padding:8px 14px;font-size:13px;color:var(--text-1);cursor:pointer;text-align:left}.menu-item[data-v-5cda7577]:hover{background:var(--bg-input)}.menu-item-danger[data-v-5cda7577]{color:var(--red, #ef4444)}.menu-divider[data-v-5cda7577]{height:1px;background:var(--border-default);margin:4px 0}.editor-section[data-v-5cda7577]{padding:12px;border-bottom:1px solid var(--border-default)}.notes-loading[data-v-5cda7577],.notes-error[data-v-5cda7577],.notes-empty[data-v-5cda7577]{padding:24px 16px;text-align:center;font-size:13px;color:var(--text-3)}.notes-error[data-v-5cda7577]{display:flex;align-items:center;justify-content:center;gap:8px}.btn-retry-small[data-v-5cda7577]{background:none;border:1px solid var(--border-default);border-radius:4px;padding:3px 10px;font-size:12px;cursor:pointer;color:var(--primary, #1d4ed8)}.empty-text[data-v-5cda7577]{font-weight:600;margin:0 0 4px;color:var(--text-1)}.empty-hint[data-v-5cda7577]{margin:0 0 12px;font-size:12px}.btn-first-note[data-v-5cda7577]{background:var(--primary, #1d4ed8);color:#fff;border:none;border-radius:6px;padding:6px 16px;font-size:13px;font-weight:500;cursor:pointer}.notes-list[data-v-5cda7577]{max-height:400px;overflow-y:auto;padding:8px}.note-card[data-v-5cda7577]{background:var(--bg-input);border-radius:6px;padding:10px 12px;margin-bottom:6px;border-left:3px solid var(--primary, #1d4ed8);transition:opacity .2s,border-color .2s,background .2s}.note-card[data-v-5cda7577]:last-child{margin-bottom:0}.note-nearby[data-v-5cda7577]{border-left-color:var(--green, #22c55e);background:var(--green-bg);opacity:1}.note-dimmed[data-v-5cda7577]{opacity:.5}.note-header[data-v-5cda7577]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.timestamp-badge[data-v-5cda7577]{background:var(--primary-glow);border:none;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:600;color:var(--primary, #1d4ed8);cursor:pointer;font-family:monospace}.timestamp-badge[data-v-5cda7577]:hover{background:var(--border-subtle)}.nearby-dot[data-v-5cda7577]{font-size:10px;color:var(--green, #22c55e);font-weight:500}.note-actions[data-v-5cda7577]{margin-left:auto;display:flex;gap:8px;opacity:0;transition:opacity .15s}.note-card:hover .note-actions[data-v-5cda7577]{opacity:1}.action-btn[data-v-5cda7577]{background:none;border:none;padding:0;font-size:11px;color:var(--text-3);cursor:pointer}.action-btn[data-v-5cda7577]:hover{color:var(--text-1)}.action-btn-danger[data-v-5cda7577]:hover{color:var(--red, #ef4444)}.note-body[data-v-5cda7577]{font-size:13px;line-height:1.6;color:var(--text-1)}.note-body[data-v-5cda7577] code{background:var(--bg-hover);padding:1px 4px;border-radius:3px;font-size:12px}.note-body[data-v-5cda7577] pre{background:var(--bg-hover);padding:8px;border-radius:4px;overflow-x:auto;font-size:12px}.note-body[data-v-5cda7577] h3{font-size:14px;font-weight:600;margin:4px 0}.note-body[data-v-5cda7577] ul,.note-body[data-v-5cda7577] ol{padding-left:18px;margin:4px 0}.note-body[data-v-5cda7577] a{color:var(--primary, #1d4ed8)}.note-body[data-v-5cda7577] p{margin:0 0 4px}.note-body[data-v-5cda7577] p:last-child{margin-bottom:0}.provisioning-lock-banner[data-v-0a9ab073]{position:fixed;top:0;left:0;right:0;z-index:9998;background:var(--yellow);color:#fff;text-align:center;padding:10px 16px;font-size:14px;font-weight:500}.lesson-viewer[data-v-0a9ab073]{display:flex;height:calc(100vh - 60px);background:var(--bg-base)}.lesson-main[data-v-0a9ab073]{flex:1;overflow-y:auto;min-width:0;background:var(--bg-base)}.state-center[data-v-0a9ab073]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;color:var(--text-3);gap:12px}.state-error[data-v-0a9ab073]{color:var(--red)}.spinner[data-v-0a9ab073]{width:40px;height:40px;border:3px solid var(--primary-glow-strong);border-top-color:var(--primary);border-radius:50%;animation:spin-0a9ab073 .8s linear infinite}@keyframes spin-0a9ab073{to{transform:rotate(360deg)}}.btn-retry[data-v-0a9ab073]{margin-top:8px;padding:8px 20px;background:var(--primary);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px}.overview-icon[data-v-0a9ab073]{font-size:56px;line-height:1}.overview-title[data-v-0a9ab073]{color:var(--text-1);font-size:24px;font-weight:700;margin:0}.course-status-hero-badge[data-v-0a9ab073]{display:inline-block;padding:4px 14px;border-radius:999px;font-size:13px;font-weight:600;letter-spacing:.3px;margin-top:8px}.course-status-hero-planned[data-v-0a9ab073]{background:var(--bg-surface);color:var(--text-2);border:1px solid var(--border-default)}.course-status-hero-coming_soon[data-v-0a9ab073]{background:var(--yellow-bg);color:var(--yellow);border:1px solid var(--yellow)}.cs-status-badge[data-v-0a9ab073]{display:inline-block;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:600;letter-spacing:.3px;margin-left:6px;vertical-align:middle}.cs-status-planned[data-v-0a9ab073]{background:var(--bg-hover);color:var(--text-3);border:1px solid var(--border-default)}.cs-status-coming_soon[data-v-0a9ab073]{background:var(--yellow-bg);color:var(--yellow);border:1px solid var(--yellow)}.overview-desc[data-v-0a9ab073]{color:var(--text-2);font-size:15px;margin:4px 0 0;text-align:center;max-width:480px}.overview-hint[data-v-0a9ab073]{color:var(--text-3);font-size:14px;margin-top:12px}.overview-hint.locked[data-v-0a9ab073]{color:var(--red)}.overview-locked[data-v-0a9ab073]{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:16px}.btn-upgrade[data-v-0a9ab073]{display:inline-block;padding:10px 24px;background:var(--primary);color:#fff;border-radius:8px;font-size:14px;font-weight:600;text-decoration:none;transition:opacity .2s}.btn-upgrade[data-v-0a9ab073]:hover{opacity:.85}.video-content[data-v-0a9ab073]{padding:32px 28px 32px 0;max-width:960px}.breadcrumb[data-v-0a9ab073]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-3);margin-bottom:18px;flex-wrap:wrap}.bc-link[data-v-0a9ab073]{color:var(--primary);text-decoration:none}.bc-link[data-v-0a9ab073]:hover{text-decoration:underline}.bc-sep[data-v-0a9ab073]{color:var(--border-bright)}.bc-course[data-v-0a9ab073]{color:var(--text-2)}.bc-current[data-v-0a9ab073]{color:var(--text-1);font-weight:500}.video-frame[data-v-0a9ab073]{position:relative;width:100%;aspect-ratio:16 / 9;background:var(--text-1);border-radius:14px;overflow:hidden;margin-bottom:22px;box-shadow:var(--shadow-lg)}.youtube-iframe[data-v-0a9ab073]{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:none}.video-placeholder[data-v-0a9ab073]{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-3);font-size:15px}.video-badge[data-v-0a9ab073]{position:absolute;top:12px;right:12px;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600;pointer-events:none;z-index:5}.badge-hls[data-v-0a9ab073]{background:var(--primary-glow-strong);color:var(--primary-light);border:1px solid var(--border-bright)}.badge-yt[data-v-0a9ab073]{background:var(--red-bg);color:var(--red);border:1px solid rgba(220,38,38,.3)}.video-title[data-v-0a9ab073]{font-size:20px;font-weight:700;color:var(--text-1);margin:0 0 16px;line-height:1.4}.video-action-row[data-v-0a9ab073]{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;flex-wrap:wrap}.notes-link[data-v-0a9ab073]{color:var(--primary);text-decoration:none;font-size:14px;font-weight:500}.notes-link[data-v-0a9ab073]:hover{text-decoration:underline}.btn-complete-video[data-v-0a9ab073]{padding:9px 20px;background:transparent;border:1.5px solid var(--green);color:var(--green);border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .18s}.btn-complete-video[data-v-0a9ab073]:hover:not(:disabled){background:var(--green-bg)}.btn-complete-video[data-v-0a9ab073]:disabled{opacity:.55;cursor:not-allowed}.badge-completed[data-v-0a9ab073]{color:var(--green);font-size:14px;font-weight:600}.lesson-nav-footer[data-v-0a9ab073]{display:flex;justify-content:space-between;gap:12px;padding-top:20px;border-top:1px solid var(--border-subtle);margin-top:8px}.btn-nav[data-v-0a9ab073]{padding:10px 18px;background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-2);border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:background .18s,color .18s,border-color .18s,box-shadow .18s;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-nav[data-v-0a9ab073]:hover{background:var(--bg-hover);border-color:var(--primary);color:var(--primary);box-shadow:var(--shadow-sm)}.lesson-container[data-v-0a9ab073]{max-width:880px;margin:0 auto;padding:36px 32px 56px;transition:max-width .3s}.lesson-container.full-width[data-v-0a9ab073]{max-width:100%}.theme-header[data-v-0a9ab073]{margin-bottom:28px;padding-bottom:22px;border-bottom:1px solid var(--border-subtle)}.theme-meta[data-v-0a9ab073]{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.meta-section[data-v-0a9ab073]{color:var(--primary);font-size:13px;font-weight:500}.meta-sep[data-v-0a9ab073]{color:var(--border-bright)}.meta-icon[data-v-0a9ab073]{font-size:36px}.theme-header h1[data-v-0a9ab073]{color:var(--text-1);font-size:28px;font-weight:700;margin:0;line-height:1.35}.theme-actions[data-v-0a9ab073]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.duration-chip[data-v-0a9ab073]{padding:5px 12px;background:var(--primary-glow);color:var(--primary);border-radius:20px;font-size:12px;font-weight:500}.btn-icon[data-v-0a9ab073]{padding:7px 12px;background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-2);border-radius:8px;font-size:16px;cursor:pointer;transition:background .18s,color .18s}.btn-icon[data-v-0a9ab073]:hover{background:var(--bg-hover);color:var(--primary)}.btn-complete[data-v-0a9ab073]{padding:9px 18px;background:var(--green);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .18s,transform .18s}.btn-complete[data-v-0a9ab073]:hover:not(:disabled){opacity:.88;transform:translateY(-1px)}.btn-complete[data-v-0a9ab073]:disabled{opacity:.55;cursor:not-allowed}.content-card[data-v-0a9ab073]{background:var(--bg-surface);border:1.5px solid var(--border-subtle);border-radius:16px;padding:32px;box-shadow:var(--shadow-sm)}.markdown-content[data-v-0a9ab073]{color:var(--text-1);line-height:1.8;font-size:16px}.markdown-content[data-v-0a9ab073] h1,.markdown-content[data-v-0a9ab073] h2,.markdown-content[data-v-0a9ab073] h3{color:var(--text-1);margin-top:32px;margin-bottom:14px;font-weight:600}.markdown-content[data-v-0a9ab073] h1{font-size:26px}.markdown-content[data-v-0a9ab073] h2{font-size:22px}.markdown-content[data-v-0a9ab073] h3{font-size:18px}.markdown-content[data-v-0a9ab073] p{margin-bottom:14px}.markdown-content[data-v-0a9ab073] code{background:var(--primary-glow);padding:2px 6px;border-radius:4px;font-family:JetBrains Mono,monospace;font-size:13.5px;color:var(--primary)}.markdown-content[data-v-0a9ab073] pre{background:var(--bg-base);border:1px solid var(--border-default);border-radius:8px;padding:18px 20px;overflow-x:auto;margin:20px 0}.markdown-content[data-v-0a9ab073] pre code{background:transparent;padding:0;color:var(--text-1);font-size:14px}.markdown-content[data-v-0a9ab073] ul,.markdown-content[data-v-0a9ab073] ol{margin:14px 0;padding-left:24px}.markdown-content[data-v-0a9ab073] li{margin-bottom:6px}.markdown-content[data-v-0a9ab073] blockquote{border-left:3px solid var(--primary);padding-left:16px;margin:18px 0;color:var(--text-3);font-style:italic}.markdown-content[data-v-0a9ab073] table{width:100%;border-collapse:collapse;margin:18px 0}.markdown-content[data-v-0a9ab073] th,.markdown-content[data-v-0a9ab073] td{border:1px solid var(--border-default);padding:10px 14px;text-align:left}.markdown-content[data-v-0a9ab073] th{background:var(--bg-hover);font-weight:600;color:var(--text-1)}.markdown-content[data-v-0a9ab073] a{color:var(--primary);text-decoration:none}.markdown-content[data-v-0a9ab073] a:hover{text-decoration:underline}.markdown-content[data-v-0a9ab073] img{max-width:100%;height:auto;border-radius:8px;margin:18px 0}.course-sidebar[data-v-0a9ab073]{width:300px;flex-shrink:0;background:var(--bg-surface);border-left:1.5px solid var(--border-subtle);display:flex;flex-direction:column;overflow:hidden;box-shadow:-2px 0 12px #1d4ed80f}.cs-back[data-v-0a9ab073]{padding:14px 16px 0}.cs-back-link[data-v-0a9ab073]{color:var(--primary);text-decoration:none;font-size:13px;font-weight:500;opacity:.75;transition:opacity .15s}.cs-back-link[data-v-0a9ab073]:hover{opacity:1}.cs-header[data-v-0a9ab073]{padding:16px 16px 14px;border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--bg-surface)}.cs-course-name[data-v-0a9ab073]{font-size:13px;font-weight:700;color:var(--text-1);text-align:center;line-height:1.3}.cs-ring-wrap[data-v-0a9ab073]{display:flex;justify-content:center}.cs-progress-label[data-v-0a9ab073]{font-size:12px;color:var(--text-3);text-align:center}.cs-body[data-v-0a9ab073]{flex:1;overflow-y:auto;padding:8px 0 20px;background:var(--bg-base)}.cs-section[data-v-0a9ab073]{margin-bottom:4px}.cs-section-name[data-v-0a9ab073]{padding:10px 16px 5px;font-size:10px;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.07em}.cs-theme-item[data-v-0a9ab073]{display:flex;align-items:center;gap:8px;padding:7px 16px;text-decoration:none;color:var(--text-2);font-size:13px;transition:background .12s,color .12s}.cs-theme-item[data-v-0a9ab073]:hover{background:var(--bg-hover);color:var(--primary)}.cs-theme-item.cs-theme-active[data-v-0a9ab073]{background:var(--primary-glow);color:var(--primary);font-weight:500}.cs-theme-locked[data-v-0a9ab073]{cursor:default;opacity:.5}.cs-theme-locked[data-v-0a9ab073]:hover{background:none;color:var(--text-2)}.cs-free-badge[data-v-0a9ab073]{margin-left:auto;flex-shrink:0;font-size:10px;font-weight:700;text-transform:uppercase;background:var(--green-bg);color:var(--green);border:1px solid var(--green);border-radius:4px;padding:1px 5px}.dot-lock[data-v-0a9ab073]{background:none;font-size:10px}.cs-dot[data-v-0a9ab073]{flex-shrink:0;width:17px;height:17px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700}.dot-done[data-v-0a9ab073]{background:var(--green-bg);color:var(--green);border:1.5px solid var(--green)}.dot-active[data-v-0a9ab073]{background:var(--primary-glow-strong);border:2px solid var(--primary)}.dot-todo[data-v-0a9ab073]{background:transparent;border:1.5px solid var(--border-bright)}.cs-theme-title[data-v-0a9ab073]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cs-duration[data-v-0a9ab073]{flex-shrink:0;font-size:11px;color:var(--text-3)}.cs-section-actions[data-v-0a9ab073]{padding:4px 12px 10px;display:flex;flex-direction:column;gap:6px}.cs-action-btn[data-v-0a9ab073]{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:background .15s,border-color .15s,opacity .15s,box-shadow .15s;text-align:left;width:100%}.cs-lab-btn[data-v-0a9ab073]{background:var(--primary-glow);border-color:var(--border-default);color:var(--primary)}.cs-lab-btn[data-v-0a9ab073]:hover:not(:disabled){background:var(--primary-glow-strong);border-color:var(--primary);box-shadow:var(--shadow-sm)}.cs-quiz-btn[data-v-0a9ab073]{background:var(--purple-bg);border-color:#7c3aed40;color:var(--purple)}.cs-quiz-btn[data-v-0a9ab073]:hover{background:#7c3aed26;border-color:var(--purple);box-shadow:var(--shadow-sm)}.cs-action-btn.cs-status-progress[data-v-0a9ab073]{background:var(--yellow-bg);border-color:#d977064d;color:var(--yellow)}.cs-action-btn.cs-status-passed[data-v-0a9ab073]{background:var(--green-bg);border-color:#0596694d;color:var(--green)}.cs-action-btn.cs-status-failed[data-v-0a9ab073]{background:var(--red-bg);border-color:#dc26264d;color:var(--red)}.cs-action-btn[data-v-0a9ab073]:disabled{opacity:.5;cursor:not-allowed}.cs-action-label[data-v-0a9ab073]{flex:1}.icon-wrap[data-v-0a9ab073]{position:relative;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;font-size:15px;flex-shrink:0}.status-dot[data-v-0a9ab073]{position:absolute;top:-4px;right:-6px;font-size:8px;font-weight:700;width:12px;height:12px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border:1px solid currentColor}.sdot-in_progress[data-v-0a9ab073]{color:var(--yellow)}.sdot-passed[data-v-0a9ab073]{color:var(--green)}.sdot-failed[data-v-0a9ab073]{color:var(--red)}.btn-spinner[data-v-0a9ab073]{display:inline-block;width:13px;height:13px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin-0a9ab073 .7s linear infinite;flex-shrink:0}.conflict-overlay[data-v-0a9ab073]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;z-index:1000}.conflict-modal[data-v-0a9ab073]{background:var(--bg-surface);border:1.5px solid var(--yellow-bg);border-radius:16px;padding:36px 32px 28px;max-width:440px;width:90%;text-align:center;box-shadow:var(--shadow-lg)}.conflict-icon[data-v-0a9ab073]{font-size:48px;margin-bottom:12px}.conflict-modal h3[data-v-0a9ab073]{color:var(--yellow);font-size:20px;font-weight:700;margin:0 0 12px}.conflict-modal p[data-v-0a9ab073]{color:var(--text-2);font-size:14px;margin:0 0 10px;line-height:1.5}.conflict-modal p strong[data-v-0a9ab073]{color:var(--text-1)}.conflict-modal p em[data-v-0a9ab073]{color:var(--primary);font-style:normal;font-weight:600}.conflict-hint[data-v-0a9ab073]{color:var(--text-3)!important;font-size:13px!important;margin-bottom:24px!important}.conflict-actions[data-v-0a9ab073]{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.btn-ghost[data-v-0a9ab073]{padding:9px 18px;background:transparent;border:1px solid var(--border-default);color:var(--text-3);border-radius:8px;cursor:pointer;font-size:14px;transition:border-color .15s,color .15s}.btn-ghost[data-v-0a9ab073]:hover{border-color:var(--text-2);color:var(--text-1)}.btn-outline-blue[data-v-0a9ab073]{padding:9px 18px;background:var(--primary-glow);border:1px solid var(--primary);color:var(--primary);border-radius:8px;cursor:pointer;font-size:14px;text-decoration:none;transition:background .15s}.btn-outline-blue[data-v-0a9ab073]:hover{background:var(--primary-glow-strong)}.btn-danger[data-v-0a9ab073]{padding:9px 18px;background:var(--red-bg);border:1px solid var(--red);color:var(--red);border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;transition:background .15s}.btn-danger[data-v-0a9ab073]:hover:not(:disabled){background:#dc262626}.btn-danger[data-v-0a9ab073]:disabled{opacity:.45;cursor:not-allowed}.course-overview[data-v-0a9ab073]{height:100%;overflow-y:auto}@media (max-width: 900px){.lesson-viewer[data-v-0a9ab073]{flex-direction:column}.course-sidebar[data-v-0a9ab073]{width:100%;border-left:none;border-top:1.5px solid var(--border-subtle);max-height:300px;box-shadow:none}.cs-body[data-v-0a9ab073]{padding:4px 0 12px}}@media (max-width: 600px){.video-content[data-v-0a9ab073]{padding:16px}.lesson-container[data-v-0a9ab073]{padding:20px 16px 40px}.content-card[data-v-0a9ab073]{padding:20px}.lesson-nav-footer[data-v-0a9ab073]{flex-direction:column}.btn-nav[data-v-0a9ab073]{max-width:100%}}.feedback-link-lesson[data-v-0a9ab073]{background:none;border:none;color:var(--primary);font-size:13px;cursor:pointer;padding:0;font-family:inherit}.feedback-link-lesson[data-v-0a9ab073]:hover{text-decoration:underline}.state-center[data-v-486b7e4e]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:12px;color:var(--text-3)}.spinner[data-v-486b7e4e]{width:32px;height:32px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-486b7e4e .7s linear infinite}@keyframes spin-486b7e4e{to{transform:rotate(360deg)}}.state-error[data-v-486b7e4e]{color:var(--red)}.btn-retry[data-v-486b7e4e]{padding:8px 20px;border:1.5px solid var(--border-default);border-radius:8px;background:var(--bg-card);color:var(--text-2);font-size:13px;cursor:pointer}.btn-retry[data-v-486b7e4e]:hover{border-color:var(--primary);color:var(--primary)}.overview-page[data-v-486b7e4e]{display:flex;flex-direction:column;gap:0}.hero[data-v-486b7e4e]{border-radius:20px;padding:32px 36px;color:#fff;overflow:hidden;margin-bottom:28px}.hero-tags[data-v-486b7e4e]{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.hero-tag[data-v-486b7e4e]{display:inline-block;padding:5px 12px;border-radius:8px;background:#ffffff2e;font-size:12px;font-weight:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hero-content[data-v-486b7e4e]{display:flex;justify-content:space-between;align-items:flex-start;gap:32px}.hero-info[data-v-486b7e4e]{flex:1;min-width:0}.hero-title[data-v-486b7e4e]{font-size:28px;font-weight:800;line-height:1.3;margin:0 0 12px;word-break:break-word}.hero-desc[data-v-486b7e4e]{font-size:15px;line-height:1.6;opacity:.85;margin:0 0 16px;max-width:600px}.hero-meta[data-v-486b7e4e]{display:flex;align-items:center;gap:8px;font-size:13px;opacity:.75;margin-bottom:20px}.meta-dot[data-v-486b7e4e]{width:4px;height:4px;border-radius:50%;background:#ffffff80}.hero-authors[data-v-486b7e4e]{display:flex;gap:16px;flex-wrap:wrap}.hero-author[data-v-486b7e4e]{display:flex;align-items:center;gap:10px;padding-top:12px;border-top:1px solid rgba(255,255,255,.15)}.author-avatar[data-v-486b7e4e]{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0}.author-placeholder[data-v-486b7e4e]{display:flex;align-items:center;justify-content:center;background:#fff3;color:#fff;font-weight:700;font-size:16px}.author-info[data-v-486b7e4e]{display:flex;flex-direction:column}.author-name[data-v-486b7e4e]{font-size:13px;font-weight:600}.author-title[data-v-486b7e4e]{font-size:12px;opacity:.7}.hero-image-wrap[data-v-486b7e4e]{width:280px;height:200px;border-radius:16px;background:#ffffff1a;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden}.hero-img[data-v-486b7e4e]{width:100%;height:100%;object-fit:cover;border-radius:16px}.hero-emoji[data-v-486b7e4e]{font-size:5rem;filter:drop-shadow(0 2px 12px rgba(0,0,0,.2))}.overview-grid[data-v-486b7e4e]{display:grid;grid-template-columns:1fr 340px;gap:28px;align-items:start}.overview-grid.no-sidebar[data-v-486b7e4e]{grid-template-columns:1fr;max-width:800px}.overview-main[data-v-486b7e4e]{display:flex;flex-direction:column;gap:24px}.description-card[data-v-486b7e4e]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:16px;padding:28px}.markdown-content[data-v-486b7e4e]{font-size:15px;line-height:1.7;color:var(--text-1)}.markdown-content[data-v-486b7e4e] h1,.markdown-content[data-v-486b7e4e] h2,.markdown-content[data-v-486b7e4e] h3{margin-top:1.2em;margin-bottom:.5em;font-weight:700}.markdown-content[data-v-486b7e4e] p{margin:.6em 0}.markdown-content[data-v-486b7e4e] ul,.markdown-content[data-v-486b7e4e] ol{padding-left:1.5em}.markdown-content[data-v-486b7e4e] li{margin:.3em 0}.markdown-content[data-v-486b7e4e] code{background:var(--bg-surface);padding:2px 6px;border-radius:4px;font-size:.9em}.markdown-content[data-v-486b7e4e] pre{background:var(--bg-surface);padding:16px;border-radius:8px;overflow-x:auto}.instructor-card[data-v-486b7e4e]{background:linear-gradient(135deg,#1e3a8a,#1d4ed8);border-radius:16px;padding:28px;color:#fff}.instructor-card h2[data-v-486b7e4e]{font-size:18px;font-weight:700;margin:0 0 20px}.instructor-row[data-v-486b7e4e]{display:flex;gap:16px;align-items:flex-start}.instructor-row+.instructor-row[data-v-486b7e4e]{margin-top:20px;padding-top:20px;border-top:1px solid rgba(255,255,255,.15)}.instructor-avatar[data-v-486b7e4e]{width:80px;height:80px;border-radius:50%;object-fit:cover;flex-shrink:0}.instructor-placeholder[data-v-486b7e4e]{display:flex;align-items:center;justify-content:center;background:#fff3;font-size:28px;font-weight:700}.instructor-info[data-v-486b7e4e]{flex:1}.instructor-info h3[data-v-486b7e4e]{font-size:16px;font-weight:700;margin:0 0 4px}.instructor-title[data-v-486b7e4e]{font-size:13px;opacity:.8;margin:0 0 8px}.instructor-bio[data-v-486b7e4e]{font-size:13px;line-height:1.6;opacity:.7;margin:0}.curriculum-card[data-v-486b7e4e]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:16px;overflow:hidden}.curriculum-header[data-v-486b7e4e]{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-subtle)}.curriculum-header h2[data-v-486b7e4e]{font-size:18px;font-weight:700;color:var(--text-1);margin:0}.btn-collapse[data-v-486b7e4e]{display:flex;align-items:center;gap:6px;background:none;border:none;color:var(--primary);font-size:13px;font-weight:600;cursor:pointer;padding:6px 10px;border-radius:6px;transition:background .15s}.btn-collapse[data-v-486b7e4e]:hover{background:var(--primary-glow)}.btn-collapse svg[data-v-486b7e4e]{transition:transform .2s}.btn-collapse svg.rotated[data-v-486b7e4e]{transform:rotate(180deg)}.curriculum-section+.curriculum-section[data-v-486b7e4e]{border-top:1px solid var(--border-subtle)}.section-header[data-v-486b7e4e]{display:flex;align-items:center;justify-content:space-between;width:100%;padding:16px 24px;background:var(--bg-surface);border:none;cursor:pointer;transition:background .15s;text-align:left}.section-header[data-v-486b7e4e]:hover{background:var(--primary-glow)}.section-left[data-v-486b7e4e]{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.section-arrow[data-v-486b7e4e]{color:var(--text-3);transition:transform .2s;flex-shrink:0}.section-arrow.rotated[data-v-486b7e4e]{transform:rotate(90deg)}.section-name[data-v-486b7e4e]{font-size:14px;font-weight:600;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.section-right[data-v-486b7e4e]{display:flex;align-items:center;gap:12px;flex-shrink:0}.section-count[data-v-486b7e4e]{font-size:12px;color:var(--text-3);white-space:nowrap}.section-ring[data-v-486b7e4e]{position:relative;width:36px;height:36px}.ring-svg[data-v-486b7e4e]{width:100%;height:100%;transform:rotate(-90deg)}.ring-bg[data-v-486b7e4e]{fill:transparent;stroke:var(--border-subtle);stroke-width:2.5}.ring-fill[data-v-486b7e4e]{fill:transparent;stroke:var(--primary);stroke-width:2.5;stroke-linecap:round;transition:stroke-dashoffset .4s ease}.ring-text[data-v-486b7e4e]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:600;color:var(--primary)}.section-lessons[data-v-486b7e4e]{padding:8px 24px 16px;background:var(--bg-surface);border-top:1px solid var(--border-subtle)}.section-lessons-header[data-v-486b7e4e]{display:flex;justify-content:space-between;font-size:12px;color:var(--text-3);margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border-subtle)}.lesson-row[data-v-486b7e4e]{display:flex;align-items:center;justify-content:space-between;padding:10px 0;cursor:pointer;text-decoration:none;transition:color .15s}.lesson-row:hover .lesson-title[data-v-486b7e4e]{color:var(--primary)}.lesson-left[data-v-486b7e4e]{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.lesson-icon[data-v-486b7e4e]{color:var(--text-3);flex-shrink:0}.lesson-info[data-v-486b7e4e]{display:flex;flex-direction:column;gap:2px;min-width:0}.lesson-title[data-v-486b7e4e]{font-size:13px;color:var(--text-1);font-weight:500;transition:color .15s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lesson-duration[data-v-486b7e4e]{font-size:11px;color:var(--text-3)}.lesson-check[data-v-486b7e4e]{flex-shrink:0}.lesson-dot[data-v-486b7e4e]{width:8px;height:8px;border-radius:50%;border:1.5px solid var(--border-default);flex-shrink:0}.lesson-locked[data-v-486b7e4e]{opacity:.5;cursor:default}.lesson-locked:hover .lesson-title[data-v-486b7e4e]{color:inherit}.lesson-lock[data-v-486b7e4e]{flex-shrink:0;color:var(--text-3)}.lesson-free-badge[data-v-486b7e4e]{flex-shrink:0;background:var(--green-bg);color:var(--green);font-size:10px;font-weight:600;padding:1px 8px;border-radius:10px;letter-spacing:.02em}.slide-enter-active[data-v-486b7e4e],.slide-leave-active[data-v-486b7e4e]{transition:all .2s ease;overflow:hidden}.slide-enter-from[data-v-486b7e4e],.slide-leave-to[data-v-486b7e4e]{opacity:0;max-height:0}.slide-enter-to[data-v-486b7e4e],.slide-leave-from[data-v-486b7e4e]{opacity:1;max-height:2000px}.overview-sidebar[data-v-486b7e4e]{position:relative}.sidebar-sticky[data-v-486b7e4e]{position:sticky;top:80px;display:flex;flex-direction:column;gap:16px}.sidebar-progress[data-v-486b7e4e]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:14px;padding:20px}.sidebar-progress h3[data-v-486b7e4e]{font-size:16px;font-weight:700;color:var(--text-1);margin:0 0 14px}.progress-bar-wrap[data-v-486b7e4e]{display:flex;align-items:center;gap:10px}.progress-bar-track[data-v-486b7e4e]{flex:1;height:6px;background:var(--border-subtle);border-radius:6px;overflow:hidden}.progress-bar-fill[data-v-486b7e4e]{height:100%;background:var(--primary);border-radius:6px;transition:width .5s ease}.progress-bar-fill.complete[data-v-486b7e4e]{background:var(--green)}.progress-pct[data-v-486b7e4e]{font-size:14px;font-weight:700;color:var(--primary);min-width:36px;text-align:right}.progress-pct.complete[data-v-486b7e4e]{color:var(--green)}.progress-meta[data-v-486b7e4e]{display:flex;justify-content:space-between;font-size:12px;color:var(--text-3);margin-top:8px}.btn-cta[data-v-486b7e4e]{width:100%;padding:14px;border:none;border-radius:12px;background:var(--primary);color:#fff;font-size:15px;font-weight:700;cursor:pointer;transition:opacity .2s,transform .2s;text-align:center;text-decoration:none;display:block}.btn-cta[data-v-486b7e4e]:hover{opacity:.9;transform:translateY(-1px)}.btn-upgrade[data-v-486b7e4e]{background:var(--primary)}.locked-cta[data-v-486b7e4e]{text-align:center}.locked-msg[data-v-486b7e4e]{font-size:13px;color:var(--text-3);margin:0 0 10px}.sidebar-includes[data-v-486b7e4e]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:14px;padding:20px}.sidebar-includes h3[data-v-486b7e4e]{font-size:16px;font-weight:700;color:var(--text-1);margin:0 0 14px}.includes-grid[data-v-486b7e4e]{display:flex;flex-direction:column;gap:10px}.include-item[data-v-486b7e4e]{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:10px;background:var(--bg-surface);font-size:13px;color:var(--text-2)}.include-item svg[data-v-486b7e4e]{color:var(--text-3);flex-shrink:0}@media (max-width: 900px){.overview-grid[data-v-486b7e4e]{grid-template-columns:1fr}.sidebar-sticky[data-v-486b7e4e]{position:static}.hero-content[data-v-486b7e4e]{flex-direction:column}.hero-image-wrap[data-v-486b7e4e]{width:100%;height:180px}.hero-title[data-v-486b7e4e]{font-size:24px}}@media (max-width: 600px){.hero[data-v-486b7e4e]{padding:24px 20px;border-radius:14px}.hero-image-wrap[data-v-486b7e4e]{height:150px}.instructor-row[data-v-486b7e4e]{flex-direction:column;align-items:center;text-align:center}.section-header[data-v-486b7e4e]{padding:14px 16px}.section-lessons[data-v-486b7e4e]{padding:8px 16px 16px}.description-card[data-v-486b7e4e]{padding:20px}}.sidebar-feedback[data-v-486b7e4e]{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-subtle)}.feedback-link[data-v-486b7e4e]{background:none;border:none;color:var(--primary);font-size:13px;cursor:pointer;padding:0;font-family:inherit}.feedback-link[data-v-486b7e4e]:hover{text-decoration:underline}.lab-page[data-v-8aff464d]{height:100vh;display:flex;flex-direction:column;background:var(--bg-surface);overflow:hidden}.state-center[data-v-8aff464d]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:16px}.state-text[data-v-8aff464d]{color:var(--text-1);font-size:16px}.state-error[data-v-8aff464d]{color:var(--red);font-size:16px}.btn-back[data-v-8aff464d]{color:var(--primary);text-decoration:none;padding:10px 20px;border:1px solid var(--border-default);border-radius:8px;font-size:14px}.btn-back[data-v-8aff464d]:hover{background:var(--bg-hover)}.upgrade-prompt[data-v-8aff464d]{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.lab-header[data-v-8aff464d]{background:var(--bg-surface);border-bottom:1px solid var(--border-default);padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;z-index:10}.header-left[data-v-8aff464d]{display:flex;align-items:center;gap:12px}.lab-badge[data-v-8aff464d]{background:var(--gradient-primary);color:#fff;font-size:11px;font-weight:700;letter-spacing:.08em;padding:3px 9px;border-radius:5px}.lab-title[data-v-8aff464d]{color:var(--text-1);font-size:16px;font-weight:700}.lab-status-pill[data-v-8aff464d]{background:var(--primary-glow);color:var(--primary);font-size:12px;font-weight:500;padding:3px 10px;border-radius:12px}.header-right[data-v-8aff464d]{display:flex;align-items:center;gap:20px}.timer[data-v-8aff464d]{color:var(--primary);font-size:22px;font-weight:700;font-family:Courier New,monospace}.timer-urgent[data-v-8aff464d]{color:var(--red);animation:pulse-8aff464d 1s infinite}@keyframes pulse-8aff464d{0%,to{opacity:1}50%{opacity:.55}}.btn-submit[data-v-8aff464d]{background:var(--gradient-primary);color:#fff;border:none;padding:9px 22px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s}.btn-submit[data-v-8aff464d]:hover:not(:disabled){opacity:.9}.btn-submit[data-v-8aff464d]:disabled{opacity:.5;cursor:not-allowed}.lab-body[data-v-8aff464d]{display:flex;flex:1;overflow:hidden}.terminal-zone[data-v-8aff464d]{flex:1;background:#0f172a;overflow:hidden;display:flex;flex-direction:column}.terminal-with-tabs[data-v-8aff464d]{display:flex;flex-direction:column;height:100%}.tab-bar[data-v-8aff464d]{display:flex;align-items:center;gap:2px;background:#0f172a;border-bottom:1px solid #1e293b;padding:4px 6px 0;height:36px;flex-shrink:0;overflow-x:auto}.tab-bar[data-v-8aff464d]::-webkit-scrollbar{height:0}.tab-btn[data-v-8aff464d]{display:flex;align-items:center;gap:7px;padding:0 10px;height:28px;border-radius:6px 6px 0 0;background:#0f172a;border:1px solid #1e293b;border-bottom:none;color:#475569;font-size:12px;cursor:pointer;white-space:nowrap;transition:color .15s,background .15s;flex-shrink:0}.tab-btn[data-v-8aff464d]:hover{color:#94a3b8;background:#0d1b2a}.tab-btn.tab-active[data-v-8aff464d]{background:#020617;color:#e2e8f0;border-color:#334155}.tab-close[data-v-8aff464d]{color:#475569;font-size:15px;line-height:1;padding:1px 3px;border-radius:3px;cursor:pointer}.tab-close[data-v-8aff464d]:hover{color:#f55;background:#ff555526}.tab-add[data-v-8aff464d]{width:26px;height:26px;background:transparent;border:1px dashed #1e293b;border-radius:5px;color:#38bdf8;font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:2px;transition:border-color .15s,background .15s}.tab-add[data-v-8aff464d]:hover{border-color:#38bdf8;background:#38bdf814}.terminals-wrap[data-v-8aff464d]{position:relative;flex:1;overflow:hidden;background:#020617}.terminal-slot[data-v-8aff464d]{position:absolute;top:0;right:0;bottom:0;left:0;display:none}.terminal-slot.terminal-visible[data-v-8aff464d]{display:block}.lab-sidebar[data-v-8aff464d]{width:280px;background:var(--bg-surface);border-left:1px solid var(--border-default);display:flex;flex-direction:column;overflow-y:auto;flex-shrink:0}.lab-sidebar[data-v-8aff464d]::-webkit-scrollbar{width:6px}.lab-sidebar[data-v-8aff464d]::-webkit-scrollbar-track{background:var(--bg-base)}.lab-sidebar[data-v-8aff464d]::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:3px}.lab-sidebar[data-v-8aff464d]::-webkit-scrollbar-thumb:hover{background:var(--border-bright)}.sidebar-head[data-v-8aff464d]{padding:16px 16px 12px;border-bottom:1px solid var(--border-default);flex-shrink:0}.sidebar-title[data-v-8aff464d]{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-1);margin-bottom:4px}.sidebar-count[data-v-8aff464d],.sidebar-pts[data-v-8aff464d]{font-weight:700}.sidebar-subtitle[data-v-8aff464d]{font-size:11px;color:var(--text-3)}.web-panel[data-v-8aff464d]{margin:12px 12px 0;background:var(--bg-hover);border:1px solid var(--border-default);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.panel-label[data-v-8aff464d]{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--primary)}.web-url[data-v-8aff464d]{font-family:Courier New,monospace;font-size:11px;color:var(--text-1);word-break:break-all}.btn-open-service[data-v-8aff464d]{display:inline-block;background:var(--gradient-primary);color:#fff;text-decoration:none;font-size:12px;font-weight:600;padding:6px 12px;border-radius:6px;text-align:center;align-self:flex-start;transition:opacity .15s}.btn-open-service[data-v-8aff464d]:hover{opacity:.88}.nodes-panel[data-v-8aff464d]{margin:10px 12px 0;background:var(--bg-base);border:1px solid var(--border-default);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.node-row[data-v-8aff464d]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.node-host-badge[data-v-8aff464d]{background:var(--primary-glow);color:var(--primary);font-family:Courier New,monospace;font-size:11px;padding:2px 7px;border-radius:4px}.node-ssh[data-v-8aff464d]{font-family:Courier New,monospace;font-size:11px;color:var(--text-2)}.tasks-list[data-v-8aff464d]{display:flex;flex-direction:column;gap:10px;padding:12px}.task-card[data-v-8aff464d]{border:1px solid var(--border-default);border-left:3px solid var(--primary);border-radius:8px;padding:12px 14px;background:var(--bg-surface)}.task-head[data-v-8aff464d]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.task-num-badge[data-v-8aff464d]{background:var(--primary-glow);color:var(--primary);font-size:11px;font-weight:700;padding:2px 7px;border-radius:4px;flex-shrink:0}.task-title[data-v-8aff464d]{color:var(--text-1);font-size:13px;font-weight:600;flex:1;min-width:0}.task-pts[data-v-8aff464d]{color:var(--text-3);font-size:11px;font-weight:500;flex-shrink:0}.task-desc[data-v-8aff464d]{color:var(--text-2);font-size:10px;line-height:1.6;white-space:pre-wrap;margin-bottom:6px}.task-desc[data-v-8aff464d] .inline-cmd{background:var(--bg-base);color:var(--primary);border-radius:3px;padding:1px 5px;font-family:monospace;font-size:9px}.task-type-row[data-v-8aff464d]{margin-top:4px}.type-badge[data-v-8aff464d]{display:inline-block;background:var(--primary-glow);color:var(--primary);font-size:10px;font-weight:500;padding:2px 7px;border-radius:4px}.solution-wrap[data-v-8aff464d]{margin-top:8px}.btn-toggle-solution[data-v-8aff464d]{background:transparent;border:none;color:var(--text-3);font-size:11px;cursor:pointer;padding:0;transition:color .15s}.btn-toggle-solution[data-v-8aff464d]:hover{color:var(--primary)}.solution-box[data-v-8aff464d]{margin-top:6px;background:#1e293b;border-radius:6px;padding:10px 12px;overflow-x:auto}.solution-box div[data-v-8aff464d]{color:#7dd3fc;font-family:Courier New,monospace;font-size:11px;line-height:1.6;white-space:pre-wrap;margin:0}.solution-box[data-v-8aff464d] .inline-cmd{background:#ffffff1a;color:#7dd3fc;border-radius:3px;padding:1px 5px;font-family:monospace}.modal-backdrop[data-v-8aff464d]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172ab3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-card[data-v-8aff464d]{background:var(--bg-surface);border-radius:12px;padding:28px 32px;max-width:400px;width:90%;box-shadow:var(--shadow-lg)}.modal-title[data-v-8aff464d]{color:var(--text-1);font-size:18px;font-weight:700;margin-bottom:10px}.modal-body[data-v-8aff464d]{color:var(--text-2);font-size:14px;line-height:1.6;margin-bottom:24px}.modal-actions[data-v-8aff464d]{display:flex;gap:10px}.btn-modal-primary[data-v-8aff464d]{background:var(--gradient-primary);color:#fff;border:none;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s}.btn-modal-primary[data-v-8aff464d]:hover{opacity:.88}.btn-modal-ghost[data-v-8aff464d]{background:transparent;color:var(--text-2);border:1px solid var(--border-default);padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:border-color .15s,color .15s}.btn-modal-ghost[data-v-8aff464d]:hover{border-color:var(--border-bright);color:var(--text-1)}.spinner[data-v-8aff464d]{width:28px;height:28px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-8aff464d .8s linear infinite}.modal-spinner[data-v-8aff464d]{display:flex;justify-content:center;margin-top:8px}@keyframes spin-8aff464d{to{transform:rotate(360deg)}}.lab-results[data-v-2fe63108]{min-height:100vh;background:var(--bg-base)}.full-center[data-v-2fe63108]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:16px}.spinner[data-v-2fe63108]{width:36px;height:36px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-2fe63108 .8s linear infinite}@keyframes spin-2fe63108{to{transform:rotate(360deg)}}.loading-text[data-v-2fe63108]{color:var(--text-3);font-size:14px}.error-card[data-v-2fe63108]{background:var(--bg-surface);border-radius:12px;padding:24px 32px;text-align:center;box-shadow:var(--shadow-md)}.error-msg[data-v-2fe63108]{color:var(--red);font-size:14px;margin-bottom:16px}.hero[data-v-2fe63108]{padding:36px 24px;text-align:center}.hero--pass[data-v-2fe63108]{background:linear-gradient(135deg,#1e3a8a 0%,var(--primary) 55%,#0ea5e9 100%)}.hero--fail[data-v-2fe63108]{background:linear-gradient(135deg,#1e3a8a,#374151)}.hero-emoji[data-v-2fe63108]{font-size:44px;display:block;margin-bottom:10px}.hero-title[data-v-2fe63108]{color:#fff;font-size:22px;font-weight:800;margin-bottom:6px}.hero-sub[data-v-2fe63108]{color:var(--border-default);font-size:12px}.results-body[data-v-2fe63108]{padding:24px;max-width:900px;margin:0 auto}.score-card[data-v-2fe63108]{background:var(--bg-surface);border-radius:12px;border:1px solid var(--border-default);box-shadow:var(--shadow-md);display:flex;overflow:hidden;margin-bottom:24px}.stat-col[data-v-2fe63108]{flex:1;padding:16px 12px;text-align:center}.stat-col+.stat-col[data-v-2fe63108]{border-left:1px solid var(--border-subtle)}.stat-num[data-v-2fe63108]{font-size:22px;font-weight:800}.stat-num--blue[data-v-2fe63108]{color:var(--primary)}.stat-num--green[data-v-2fe63108]{color:var(--green)}.stat-num--slate[data-v-2fe63108]{color:var(--text-1)}.stat-num--red[data-v-2fe63108]{color:var(--red)}.stat-lbl[data-v-2fe63108]{font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.section-title[data-v-2fe63108]{font-size:11px;font-weight:700;color:var(--text-1);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.task-results[data-v-2fe63108]{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.tr-card[data-v-2fe63108]{display:flex;align-items:center;justify-content:space-between;border-radius:8px;padding:10px 14px}.tr-card--pass[data-v-2fe63108]{background:var(--green-bg);border:1px solid rgba(5,150,105,.2);border-left:4px solid var(--green)}.tr-card--fail[data-v-2fe63108]{background:var(--red-bg);border:1px solid rgba(220,38,38,.2);border-left:4px solid var(--red)}.tr-name[data-v-2fe63108]{font-size:12px;font-weight:600}.tr-card--pass .tr-name[data-v-2fe63108]{color:var(--green)}.tr-card--fail .tr-name[data-v-2fe63108]{color:var(--red)}.tr-right[data-v-2fe63108]{display:flex;align-items:center;gap:8px}.tr-pts[data-v-2fe63108]{font-size:11px;font-weight:700}.tr-card--pass .tr-pts[data-v-2fe63108]{color:var(--green)}.tr-card--fail .tr-pts[data-v-2fe63108]{color:var(--red)}.tr-badge[data-v-2fe63108]{font-size:9px;font-weight:700;padding:2px 8px;border-radius:10px}.tr-badge--pass[data-v-2fe63108]{background:#05966926;color:var(--green)}.tr-badge--fail[data-v-2fe63108]{background:#dc262626;color:var(--red)}.results-actions[data-v-2fe63108]{display:flex;gap:10px;flex-wrap:wrap}.btn-primary[data-v-2fe63108]{background:var(--gradient-primary);color:#fff;font-size:12px;font-weight:700;padding:10px 20px;border-radius:8px;border:none;cursor:pointer;text-decoration:none;display:inline-block;transition:filter .15s}.btn-primary[data-v-2fe63108]:hover{filter:brightness(.9)}.btn-secondary[data-v-2fe63108]{background:var(--bg-surface);border:1px solid var(--border-default);color:var(--primary);font-size:12px;font-weight:600;padding:10px 20px;border-radius:8px;cursor:pointer;transition:background .15s}.btn-secondary[data-v-2fe63108]:hover{background:var(--bg-hover)}.btn-secondary[data-v-2fe63108]:disabled{opacity:.7;cursor:not-allowed}.btn-ghost[data-v-2fe63108]{background:transparent;border:1px solid var(--border-subtle);color:var(--text-3);font-size:12px;font-weight:600;padding:10px 20px;border-radius:8px;cursor:pointer;text-decoration:none;display:inline-block}.btn-ghost[data-v-2fe63108]:hover{background:var(--bg-input)}.btn-danger[data-v-2fe63108]{background:var(--red);color:#fff;font-size:12px;font-weight:700;padding:10px 20px;border-radius:8px;border:none;cursor:pointer}.btn-danger[data-v-2fe63108]:hover{filter:brightness(.9)}.modal-backdrop[data-v-2fe63108]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a99;display:flex;align-items:center;justify-content:center;z-index:100}.modal-card[data-v-2fe63108]{background:var(--bg-surface);border-radius:12px;padding:28px 32px;max-width:440px;width:90%;box-shadow:var(--shadow-lg)}.modal-title[data-v-2fe63108]{font-size:16px;font-weight:700;color:var(--text-1);margin-bottom:8px}.modal-body[data-v-2fe63108]{font-size:13px;color:var(--text-3);margin-bottom:6px}.modal-hint[data-v-2fe63108]{font-size:12px;color:var(--text-3);margin-bottom:20px}.modal-actions[data-v-2fe63108]{display:flex;gap:10px}.quiz-attempt[data-v-ab229e5a]{background:var(--bg-base);min-height:calc(100vh - 60px)}.page-loading[data-v-ab229e5a],.page-error[data-v-ab229e5a]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px}.spinner[data-v-ab229e5a]{width:36px;height:36px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-ab229e5a .8s linear infinite}@keyframes spin-ab229e5a{to{transform:rotate(360deg)}}.error-msg[data-v-ab229e5a]{color:var(--red);font-size:14px}.quiz-header[data-v-ab229e5a]{position:sticky;top:0;z-index:10;background:var(--bg-surface);border-bottom:1px solid var(--border-default);padding:12px 24px 10px;box-shadow:var(--shadow-sm)}.quiz-header-row[data-v-ab229e5a]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}.quiz-title[data-v-ab229e5a]{font-size:15px;font-weight:800;color:var(--text-1)}.quiz-info[data-v-ab229e5a]{font-size:10px;color:var(--text-3);margin-top:2px}.btn-submit[data-v-ab229e5a]{background:var(--gradient-primary);color:#fff;font-size:11px;font-weight:700;padding:8px 18px;border-radius:8px;border:none;cursor:pointer;white-space:nowrap;transition:filter .15s;flex-shrink:0}.btn-submit[data-v-ab229e5a]:hover{filter:brightness(.9)}.btn-submit--loading[data-v-ab229e5a]{opacity:.7;cursor:not-allowed;pointer-events:none}.progress-track[data-v-ab229e5a]{height:4px;background:var(--border-subtle);border-radius:4px}.progress-fill[data-v-ab229e5a]{height:100%;background:var(--gradient-primary);border-radius:4px;transition:width .3s}.progress-label[data-v-ab229e5a]{font-size:10px;color:var(--text-3);margin-top:4px;text-align:right}.questions-wrap[data-v-ab229e5a]{padding:20px 24px;display:flex;flex-direction:column;gap:16px;max-width:760px;margin:0 auto}.question-card[data-v-ab229e5a]{background:var(--bg-surface);border-radius:12px;padding:16px;box-shadow:var(--shadow-sm);border:1px solid var(--border-subtle)}.q-meta[data-v-ab229e5a]{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.q-num-badge[data-v-ab229e5a]{background:var(--primary-glow);color:var(--primary);font-size:9px;font-weight:700;padding:2px 9px;border-radius:10px;text-transform:uppercase}.q-pts[data-v-ab229e5a]{color:var(--text-3);font-size:10px}.q-text[data-v-ab229e5a]{font-size:13px;font-weight:600;color:var(--text-1);line-height:1.5;margin-bottom:12px}.choices[data-v-ab229e5a]{display:flex;flex-direction:column;gap:6px}.choice[data-v-ab229e5a]{display:flex;align-items:center;gap:10px;padding:9px 14px;border-radius:8px;border:1px solid var(--border-subtle);background:var(--bg-surface);cursor:pointer;transition:border-color .15s,background .15s}.choice[data-v-ab229e5a]:hover{border-color:var(--border-bright);background:var(--bg-input)}.choice--selected[data-v-ab229e5a]{border:2px solid var(--primary);background:var(--bg-hover)}.radio[data-v-ab229e5a]{width:16px;height:16px;border-radius:50%;border:2px solid var(--border-default);flex-shrink:0;display:flex;align-items:center;justify-content:center}.choice--selected .radio[data-v-ab229e5a]{border-color:var(--primary)}.radio-dot[data-v-ab229e5a]{width:8px;height:8px;border-radius:50%;background:var(--primary)}.choice-text[data-v-ab229e5a]{font-size:12px;color:var(--text-2)}.choice--selected .choice-text[data-v-ab229e5a]{color:var(--primary);font-weight:600}.modal-backdrop[data-v-ab229e5a]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172ab3;display:flex;align-items:center;justify-content:center;z-index:200}.modal-card[data-v-ab229e5a]{background:var(--bg-surface);border-radius:12px;padding:28px 32px;max-width:420px;width:90%;box-shadow:var(--shadow-lg)}.modal-title[data-v-ab229e5a]{font-size:16px;font-weight:700;color:var(--text-1);margin-bottom:8px}.modal-body[data-v-ab229e5a]{font-size:13px;color:var(--text-3);line-height:1.5;margin-bottom:20px}.modal-actions[data-v-ab229e5a]{display:flex;gap:10px}.btn-primary[data-v-ab229e5a]{background:var(--gradient-primary);color:#fff;font-size:12px;font-weight:700;padding:10px 20px;border-radius:8px;border:none;cursor:pointer;transition:filter .15s}.btn-primary[data-v-ab229e5a]:hover{filter:brightness(.9)}.btn-ghost[data-v-ab229e5a]{background:transparent;border:1px solid var(--border-subtle);color:var(--text-3);font-size:12px;font-weight:600;padding:10px 20px;border-radius:8px;cursor:pointer;text-decoration:none;display:inline-block}.btn-ghost[data-v-ab229e5a]:hover{background:var(--bg-input)}.quiz-results[data-v-576fad57]{background:var(--bg-base);min-height:calc(100vh - 60px)}.page-loading[data-v-576fad57],.page-error[data-v-576fad57]{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px}.spinner[data-v-576fad57]{width:36px;height:36px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-576fad57 .8s linear infinite}@keyframes spin-576fad57{to{transform:rotate(360deg)}}.error-msg[data-v-576fad57]{color:var(--red);font-size:14px}.hero[data-v-576fad57]{padding:36px 24px;text-align:center}.hero--pass[data-v-576fad57]{background:linear-gradient(135deg,#1e3a8a 0%,var(--primary) 55%,#0ea5e9 100%)}.hero--fail[data-v-576fad57]{background:linear-gradient(135deg,#1e3a8a,#374151)}.hero-emoji[data-v-576fad57]{font-size:44px;display:block;margin-bottom:10px}.hero-title[data-v-576fad57]{color:#fff;font-size:22px;font-weight:800;margin-bottom:6px}.hero-sub[data-v-576fad57]{color:var(--border-default);font-size:12px}.results-body[data-v-576fad57]{padding:24px;max-width:820px;margin:0 auto}.score-card[data-v-576fad57]{background:var(--bg-surface);border-radius:12px;border:1px solid var(--border-default);box-shadow:var(--shadow-md);display:flex;overflow:hidden;margin-bottom:24px}.stat-col[data-v-576fad57]{flex:1;padding:16px 12px;text-align:center}.stat-col+.stat-col[data-v-576fad57]{border-left:1px solid var(--border-subtle)}.stat-num[data-v-576fad57]{font-size:22px;font-weight:800}.stat-num--blue[data-v-576fad57]{color:var(--primary)}.stat-num--green[data-v-576fad57]{color:var(--green)}.stat-num--slate[data-v-576fad57]{color:var(--text-1)}.stat-num--red[data-v-576fad57]{color:var(--red)}.stat-col dl[data-v-576fad57],.stat-col dt[data-v-576fad57],.stat-col dd[data-v-576fad57]{margin:0}.stat-lbl[data-v-576fad57]{font-size:9px;color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;margin-top:4px}.section-title[data-v-576fad57]{font-size:11px;font-weight:700;color:var(--text-1);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.question-results[data-v-576fad57]{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.qr-card[data-v-576fad57]{background:var(--bg-surface);border-radius:10px;border:1px solid var(--border-subtle);padding:14px 16px}.qr-head[data-v-576fad57]{display:flex;align-items:center;gap:10px;margin-bottom:8px}.qr-num[data-v-576fad57]{background:var(--primary-glow);color:var(--primary);font-size:9px;font-weight:700;padding:2px 9px;border-radius:10px}.qr-verdict[data-v-576fad57]{font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px}.verdict--correct[data-v-576fad57]{background:var(--green-bg);color:var(--green)}.verdict--wrong[data-v-576fad57]{background:var(--red-bg);color:var(--red)}.qr-pts[data-v-576fad57]{font-size:10px;color:var(--text-3);margin-left:auto}.qr-text[data-v-576fad57]{font-size:13px;font-weight:600;color:var(--text-1);margin-bottom:10px;line-height:1.5}.qr-choices[data-v-576fad57]{display:flex;flex-direction:column;gap:5px}.qrc[data-v-576fad57]{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:7px;border:1px solid var(--border-subtle);background:var(--bg-surface)}.qrc--correct[data-v-576fad57]{background:var(--green-bg);border-color:#05966933}.qrc--chosen-wrong[data-v-576fad57]{background:var(--red-bg);border-color:#dc262633}.qrc--correct-chosen[data-v-576fad57]{background:var(--green-bg);border-color:#0596694d}.qrc-indicator[data-v-576fad57]{width:16px;flex-shrink:0;text-align:center;font-size:12px}.qrc--correct .qrc-indicator[data-v-576fad57]{color:var(--green)}.qrc--chosen-wrong .qrc-indicator[data-v-576fad57]{color:var(--red)}.qrc--correct-chosen .qrc-indicator[data-v-576fad57]{color:var(--green);font-weight:700}.qrc-dot[data-v-576fad57]{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--border-default)}.qrc-text[data-v-576fad57]{font-size:12px;color:var(--text-2)}.qrc--correct .qrc-text[data-v-576fad57]{color:var(--green)}.qrc--chosen-wrong .qrc-text[data-v-576fad57]{color:var(--red)}.qrc--correct-chosen .qrc-text[data-v-576fad57]{color:var(--green);font-weight:600}.results-actions[data-v-576fad57]{display:flex;gap:10px}.btn-primary[data-v-576fad57]{background:var(--gradient-primary);color:#fff;font-size:12px;font-weight:700;padding:10px 20px;border-radius:8px;border:none;cursor:pointer;text-decoration:none;display:inline-block;transition:filter .15s}.btn-primary[data-v-576fad57]:hover{filter:brightness(.9)}.btn-secondary[data-v-576fad57]{background:var(--bg-surface);border:1px solid var(--border-default);color:var(--primary);font-size:12px;font-weight:600;padding:10px 20px;border-radius:8px;cursor:pointer;transition:background .15s}.btn-secondary[data-v-576fad57]:hover{background:var(--bg-hover)}.btn-secondary[data-v-576fad57]:disabled{opacity:.7;cursor:not-allowed}.btn-ghost[data-v-576fad57]{background:transparent;border:1px solid var(--border-subtle);color:var(--text-3);font-size:12px;font-weight:600;padding:10px 20px;border-radius:8px;cursor:pointer;text-decoration:none;display:inline-block}.btn-ghost[data-v-576fad57]:hover{background:var(--bg-input)}.quiz-start-page[data-v-340e3e09]{max-width:600px;margin:0 auto;padding:32px 20px}.state-center[data-v-340e3e09]{text-align:center;padding:60px 20px;color:var(--text-2)}.spinner[data-v-340e3e09]{width:32px;height:32px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-340e3e09 .6s linear infinite;margin:0 auto 12px}@keyframes spin-340e3e09{to{transform:rotate(360deg)}}.error-text[data-v-340e3e09]{color:var(--red);margin-bottom:16px}.quiz-card[data-v-340e3e09]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:14px;padding:28px}.quiz-header[data-v-340e3e09]{display:flex;gap:16px;align-items:flex-start;margin-bottom:20px}.quiz-icon[data-v-340e3e09]{font-size:36px}.quiz-header h1[data-v-340e3e09]{font-size:22px;font-weight:700;color:var(--text-1);margin:0 0 4px}.quiz-desc[data-v-340e3e09]{font-size:14px;color:var(--text-2);line-height:1.5;margin:0}.quiz-meta[data-v-340e3e09]{display:flex;gap:24px;padding:16px 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);margin-bottom:20px}.meta-item[data-v-340e3e09]{display:flex;flex-direction:column;gap:2px}.meta-label[data-v-340e3e09]{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.meta-value[data-v-340e3e09]{font-size:18px;font-weight:700;color:var(--text-1)}.existing-attempt[data-v-340e3e09]{margin-bottom:16px}.attempt-info[data-v-340e3e09]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:10px;font-size:14px;color:var(--text-1);flex-wrap:wrap}.attempt-info--active[data-v-340e3e09]{background:var(--primary-glow);border:1px solid rgba(29,78,216,.2)}.attempt-info--done[data-v-340e3e09]{background:var(--bg-surface);border:1px solid var(--border-default)}.badge-pass[data-v-340e3e09]{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;background:var(--green-bg);color:var(--green);margin-left:6px}.badge-fail[data-v-340e3e09]{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;background:var(--red-bg);color:var(--red);margin-left:6px}.start-section[data-v-340e3e09]{text-align:center;padding-top:8px}.btn-ocean[data-v-340e3e09]{padding:10px 24px;border-radius:8px;font-size:14px;font-weight:600;background:var(--primary);color:#fff;border:none;cursor:pointer;transition:opacity .15s}.btn-ocean[data-v-340e3e09]:hover{opacity:.88}.btn-ocean[data-v-340e3e09]:disabled{opacity:.5;cursor:not-allowed}.btn-lg[data-v-340e3e09]{padding:14px 36px;font-size:16px}.btn-secondary[data-v-340e3e09]{padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;background:var(--bg-card);color:var(--text-2);border:1px solid var(--border-default);cursor:pointer;transition:border-color .15s}.btn-secondary[data-v-340e3e09]:hover{border-color:var(--border-bright);color:var(--text-1)}.lab-start-page[data-v-850095f5]{max-width:600px;margin:0 auto;padding:32px 20px}.state-center[data-v-850095f5]{text-align:center;padding:60px 20px;color:var(--text-2)}.spinner[data-v-850095f5]{width:32px;height:32px;border:3px solid var(--border-default);border-top-color:var(--primary);border-radius:50%;animation:spin-850095f5 .6s linear infinite;margin:0 auto 12px}@keyframes spin-850095f5{to{transform:rotate(360deg)}}.error-text[data-v-850095f5]{color:var(--red);margin-bottom:16px}.lab-card[data-v-850095f5]{background:var(--bg-card);border:1px solid var(--border-default);border-radius:14px;padding:28px}.lab-header[data-v-850095f5]{display:flex;gap:16px;align-items:flex-start;margin-bottom:20px}.lab-icon[data-v-850095f5]{font-size:36px}.lab-header h1[data-v-850095f5]{font-size:22px;font-weight:700;color:var(--text-1);margin:0 0 4px}.lab-desc[data-v-850095f5]{font-size:14px;color:var(--text-2);line-height:1.5;margin:0}.lab-meta[data-v-850095f5]{display:flex;gap:24px;padding:16px 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);margin-bottom:20px}.meta-item[data-v-850095f5]{display:flex;flex-direction:column;gap:2px}.meta-label[data-v-850095f5]{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.meta-value[data-v-850095f5]{font-size:18px;font-weight:700;color:var(--text-1)}.task-preview[data-v-850095f5]{margin-bottom:20px}.task-preview h3[data-v-850095f5]{font-size:14px;font-weight:600;color:var(--text-1);margin:0 0 10px}.task-item[data-v-850095f5]{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg-surface);border-radius:6px;margin-bottom:4px;font-size:13px}.task-num[data-v-850095f5]{font-weight:700;color:var(--primary);min-width:20px}.task-title[data-v-850095f5]{flex:1;color:var(--text-1)}.task-points[data-v-850095f5]{font-size:11px;color:var(--text-3);white-space:nowrap}.existing-attempt[data-v-850095f5]{margin-bottom:16px}.attempt-info[data-v-850095f5]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:10px;font-size:14px;color:var(--text-1);flex-wrap:wrap}.attempt-info--active[data-v-850095f5]{background:var(--primary-glow);border:1px solid rgba(29,78,216,.2)}.attempt-info--done[data-v-850095f5]{background:var(--bg-surface);border:1px solid var(--border-default)}.badge-pass[data-v-850095f5]{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;background:var(--green-bg);color:var(--green);margin-left:6px}.badge-fail[data-v-850095f5]{display:inline-block;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;background:var(--red-bg);color:var(--red);margin-left:6px}.start-section[data-v-850095f5]{text-align:center;padding-top:8px}.start-hint[data-v-850095f5]{font-size:12px;color:var(--text-3);margin-top:8px}.btn-ocean[data-v-850095f5]{padding:10px 24px;border-radius:8px;font-size:14px;font-weight:600;background:var(--primary);color:#fff;border:none;cursor:pointer;transition:opacity .15s}.btn-ocean[data-v-850095f5]:hover{opacity:.88}.btn-ocean[data-v-850095f5]:disabled{opacity:.5;cursor:not-allowed}.btn-lg[data-v-850095f5]{padding:14px 36px;font-size:16px}.btn-secondary[data-v-850095f5]{padding:8px 16px;border-radius:8px;font-size:13px;font-weight:500;background:var(--bg-card);color:var(--text-2);border:1px solid var(--border-default);cursor:pointer;transition:border-color .15s}.btn-secondary[data-v-850095f5]:hover{border-color:var(--border-bright);color:var(--text-1)}.login-page[data-v-385a4dff]{min-height:100vh;background:var(--gradient-hero);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:24px}.login-deco-1[data-v-385a4dff]{position:absolute;top:-80px;right:-80px;width:320px;height:320px;background:#ffffff0f;border-radius:50%}.login-deco-2[data-v-385a4dff]{position:absolute;bottom:-100px;left:-60px;width:260px;height:260px;background:#ffffff0a;border-radius:50%}.login-card[data-v-385a4dff]{background:var(--bg-surface);border-radius:24px;padding:40px 36px;max-width:420px;width:100%;box-shadow:var(--shadow-lg);animation:fadeUp .45s ease both;position:relative;z-index:1}.login-badge[data-v-385a4dff]{display:inline-flex;align-items:center;gap:8px;background:#1d4ed814;border:1px solid rgba(29,78,216,.15);color:var(--primary);border-radius:50px;padding:6px 14px;font-size:.75rem;font-weight:600;letter-spacing:.5px;margin-bottom:20px}.badge-dot[data-v-385a4dff]{width:7px;height:7px;background:var(--green);border-radius:50%;animation:pulseBlue 2s ease-in-out infinite}.login-logo-mark[data-v-385a4dff]{width:44px;height:44px;background:var(--gradient-hero);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin-bottom:16px}.login-title[data-v-385a4dff]{font-size:26px;font-weight:800;color:var(--text-1);margin-bottom:4px}.login-sub[data-v-385a4dff]{color:var(--text-3);margin-bottom:28px;font-size:14px}.login-form[data-v-385a4dff]{display:flex;flex-direction:column;gap:16px}.form-field[data-v-385a4dff]{display:flex;flex-direction:column;gap:6px}.login-error[data-v-385a4dff]{background:var(--red-bg);color:var(--red);border:1px solid rgba(220,38,38,.2);padding:10px 12px;border-radius:8px;font-size:13px}.login-success[data-v-385a4dff]{background:var(--green-bg);color:var(--green);border:1px solid var(--green);padding:12px 14px;border-radius:8px;font-size:13px;font-weight:600;text-align:center}.login-switch[data-v-385a4dff]{margin-top:20px;text-align:center;font-size:13px;color:var(--text-3)}.login-switch a[data-v-385a4dff]{color:var(--primary);font-weight:600;text-decoration:none}.login-switch a[data-v-385a4dff]:hover{text-decoration:underline}.verify-notice[data-v-385a4dff]{text-align:center;padding:8px 0}.verify-icon[data-v-385a4dff]{font-size:2.5rem;margin-bottom:12px}.verify-title[data-v-385a4dff]{font-size:18px;font-weight:700;color:var(--text-1);margin-bottom:10px}.verify-text[data-v-385a4dff]{color:var(--text-3);font-size:14px;line-height:1.6;margin-bottom:0}.oauth-divider[data-v-385a4dff]{display:flex;align-items:center;gap:12px;color:var(--text-3);font-size:13px}.oauth-divider[data-v-385a4dff]:before,.oauth-divider[data-v-385a4dff]:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.btn-google-outer[data-v-385a4dff]{position:relative;height:40px;display:flex;justify-content:center}.btn-gis-hidden[data-v-385a4dff]{position:absolute;top:0;left:0;right:0;bottom:0;opacity:0;z-index:2;overflow:hidden}.btn-google-visual[data-v-385a4dff]{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:348px;height:40px;border:1px solid var(--border-default);border-radius:4px;background:var(--bg-surface);font-size:14px;font-weight:500;color:var(--text-2);cursor:pointer;pointer-events:none;-webkit-user-select:none;user-select:none;transition:background .15s}.btn-google-outer:hover .btn-google-visual[data-v-385a4dff]{background:var(--bg-hover);border-color:var(--border-bright)}.btn-ocean[data-v-385a4dff]:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}[data-v-40a86433],[data-v-40a86433]:before,[data-v-40a86433]:after{box-sizing:border-box}.landing[data-v-40a86433]{font-family:Poppins,sans-serif;background:var(--bg-base);color:var(--text-1);overflow-x:hidden}.card-link[data-v-40a86433]{text-decoration:none;color:inherit}.bc-empty[data-v-40a86433]{text-align:center;padding:32px;color:var(--text-3)}.navbar[data-v-40a86433]{position:sticky;top:0;z-index:100;background:#ffffffd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);height:68px}.nav-inner[data-v-40a86433]{max-width:1200px;margin:0 auto;height:100%;display:flex;align-items:center;gap:32px;padding:0 24px}.nav-logo[data-v-40a86433]{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}.nav-logo-icon[data-v-40a86433]{width:36px;height:36px;background:linear-gradient(135deg,#1e3a8a,#1d4ed8);color:#fff;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:800;animation:pulseBlue 2.5s ease-in-out infinite}.nav-logo-text[data-v-40a86433]{font-size:1.3rem;font-weight:800;color:var(--primary)}.nav-links[data-v-40a86433]{display:flex;gap:8px;flex:1}.nav-links a[data-v-40a86433]{text-decoration:none;color:var(--text-2);font-size:.9rem;font-weight:500;padding:6px 12px;border-radius:8px;transition:color .2s,background .2s}.nav-links a[data-v-40a86433]:hover{color:var(--primary);background:var(--bg-hover)}.nav-cta[data-v-40a86433]{display:flex;gap:10px;flex-shrink:0}.btn-login[data-v-40a86433]{text-decoration:none;color:var(--primary);font-weight:600;font-size:.9rem;padding:8px 20px;border-radius:10px;border:1.5px solid var(--primary);transition:background .2s,color .2s}.btn-login[data-v-40a86433]:hover{background:var(--primary);color:var(--bg-surface)}.btn-start[data-v-40a86433]{text-decoration:none;color:#fff;font-weight:600;font-size:.9rem;padding:8px 20px;border-radius:10px;background:linear-gradient(135deg,#1e3a8a,#1d4ed8);transition:opacity .2s,transform .2s}.btn-start[data-v-40a86433]:hover{opacity:.9;transform:translateY(-1px)}.hero[data-v-40a86433]{background:linear-gradient(135deg,#1e3a8a,#1d4ed8);position:relative;overflow:hidden;padding:80px 24px}.hero-deco-1[data-v-40a86433]{position:absolute;top:-100px;right:-120px;width:480px;height:480px;background:#ffffff0d;border-radius:50%}.hero-deco-2[data-v-40a86433]{position:absolute;bottom:-80px;left:-60px;width:320px;height:320px;background:#ffffff0a;border-radius:50%}.hero-inner[data-v-40a86433]{max-width:1200px;margin:0 auto;position:relative;z-index:1;padding:0 28px;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.hero-badge[data-v-40a86433]{display:inline-flex;align-items:center;gap:10px;background:#ffffff1f;border:1px solid rgba(255,255,255,.25);color:#fff;border-radius:50px;padding:8px 18px;font-size:.8rem;font-weight:600;letter-spacing:.4px;margin-bottom:24px}.badge-dot[data-v-40a86433]{width:8px;height:8px;background:#7bdb6a;border-radius:50%;animation:pulseBlue 2s ease-in-out infinite}.hero-title[data-v-40a86433]{font-size:clamp(2rem,4.5vw,3rem);font-weight:900;color:#fff;line-height:1.2;margin-bottom:16px}.gradient-text[data-v-40a86433]{color:#ffffffe6;text-decoration:underline;text-decoration-color:#ffffff59;text-underline-offset:4px}.hero-sub[data-v-40a86433]{color:#ffffffbf;font-size:1rem;margin-bottom:32px;max-width:480px}.hero-btns[data-v-40a86433]{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:40px}.btn-hero-primary[data-v-40a86433]{text-decoration:none;background:#fff;color:#1d4ed8;font-weight:700;padding:14px 28px;border-radius:12px;transition:transform .2s,box-shadow .2s}.btn-hero-primary[data-v-40a86433]:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0003}.btn-hero-secondary[data-v-40a86433]{text-decoration:none;color:#fff;border:1.5px solid rgba(255,255,255,.5);font-weight:600;padding:14px 28px;border-radius:12px;transition:background .2s}.btn-hero-secondary[data-v-40a86433]:hover{background:#ffffff1a}.hero-stats[data-v-40a86433]{display:flex;gap:40px}.stat-item[data-v-40a86433]{display:flex;flex-direction:column}.stat-num[data-v-40a86433]{font-size:1.6rem;font-weight:800;color:#fff}.stat-label[data-v-40a86433]{font-size:.8rem;color:#fff9;font-weight:500}.hero-visual[data-v-40a86433]{animation:float-40a86433 4s ease-in-out infinite}.terminal[data-v-40a86433]{background:#0d1117;border-radius:14px;overflow:hidden;box-shadow:0 24px 60px #0006}.terminal-bar[data-v-40a86433]{display:flex;align-items:center;gap:8px;background:#161b22;padding:12px 16px}.dot[data-v-40a86433]{width:12px;height:12px;border-radius:50%}.dot.red[data-v-40a86433]{background:#ff5f57}.dot.yellow[data-v-40a86433]{background:#ffbd2e}.dot.green[data-v-40a86433]{background:#28ca41}.terminal-title[data-v-40a86433]{color:#fff6;font-size:.75rem;margin-left:8px;font-family:monospace}.terminal-body[data-v-40a86433]{padding:20px;font-family:Courier New,monospace;font-size:.82rem}.t-line[data-v-40a86433]{margin-bottom:6px}.t-prompt[data-v-40a86433]{color:#7bdb6a;margin-right:8px}.t-out[data-v-40a86433]{color:#ffffff80}.t-success[data-v-40a86433]{color:#7bdb6a}.cursor[data-v-40a86433]{animation:blink-40a86433 1s step-end infinite;color:#fff}@keyframes blink-40a86433{50%{opacity:0}}@keyframes float-40a86433{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.section-inner[data-v-40a86433]{max-width:1200px;margin:0 auto;padding:0 24px}.section-header[data-v-40a86433]{text-align:center;margin-bottom:48px}.section-label[data-v-40a86433]{display:inline-block;background:var(--border-subtle);color:var(--primary);font-size:.75rem;font-weight:700;letter-spacing:.8px;text-transform:uppercase;padding:5px 14px;border-radius:50px;margin-bottom:12px}.section-title[data-v-40a86433]{font-size:clamp(1.6rem,3vw,2.2rem);font-weight:800;color:var(--text-1);margin-bottom:12px}.section-sub[data-v-40a86433]{color:var(--text-2);max-width:540px;margin:0 auto;font-size:.95rem}.features[data-v-40a86433]{padding:80px 0}.features-bento[data-v-40a86433]{display:flex;flex-direction:column;gap:20px}.feature-hero-card[data-v-40a86433]{display:flex;align-items:center;gap:32px;background:linear-gradient(135deg,#1e3a8a,#1d4ed8);border-radius:20px;padding:36px 40px;color:#fff}.feature-hero-icon[data-v-40a86433]{font-size:3rem;flex-shrink:0}.feature-hero-title[data-v-40a86433]{font-size:1.35rem;font-weight:700;margin-bottom:10px}.feature-hero-desc[data-v-40a86433]{font-size:.95rem;line-height:1.65;color:#fffc;max-width:560px}.features-row[data-v-40a86433]{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.feature-card[data-v-40a86433]{background:var(--bg-surface);border-radius:16px;padding:24px;border:1px solid var(--border-subtle);box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s}.feature-card[data-v-40a86433]:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.feature-icon[data-v-40a86433]{font-size:1.8rem;margin-bottom:12px}.feature-title[data-v-40a86433]{font-size:.95rem;font-weight:700;color:var(--text-1);margin-bottom:6px}.feature-desc[data-v-40a86433]{font-size:.85rem;color:var(--text-2);line-height:1.6}@media (max-width: 700px){.features-row[data-v-40a86433]{grid-template-columns:1fr}.feature-hero-card[data-v-40a86433]{flex-direction:column;padding:28px 24px;gap:16px}}.bootcamps[data-v-40a86433]{padding:80px 0;background:var(--bg-surface)}.bc-filter-row[data-v-40a86433]{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:36px}.bc-tab[data-v-40a86433]{padding:7px 18px;border-radius:50px;font-size:.85rem;font-weight:600;border:1.5px solid var(--border-subtle);background:var(--bg-base);color:var(--text-2);cursor:pointer;transition:all .2s}.bc-tab.active[data-v-40a86433],.bc-tab[data-v-40a86433]:hover{background:var(--primary);color:var(--bg-surface);border-color:var(--primary)}.bc-grid[data-v-40a86433]{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:24px}.bc-card[data-v-40a86433]{background:var(--bg-surface);border-radius:16px;overflow:hidden;border:1px solid var(--border-default);display:flex;flex-direction:column;transition:border-color .2s,box-shadow .25s,transform .2s}.bc-card[data-v-40a86433]:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-3px)}.bc-card-image[data-v-40a86433]{position:relative;height:180px;display:flex;align-items:center;justify-content:center;overflow:hidden;background-size:cover;background-position:center}.bc-card-emoji[data-v-40a86433]{font-size:3rem;line-height:1;filter:drop-shadow(0 2px 8px rgba(0,0,0,.15))}.bc-status-badge[data-v-40a86433]{position:absolute;top:12px;left:12px;font-size:11px;font-weight:700;padding:4px 12px;border-radius:50px;white-space:nowrap}.bc-status-active[data-v-40a86433]{background:var(--green-bg);color:var(--green)}.bc-status-planned[data-v-40a86433]{background:var(--purple-bg);color:var(--purple)}.bc-status-coming_soon[data-v-40a86433]{background:var(--yellow-bg);color:var(--yellow)}.bc-status-in_progress[data-v-40a86433]{background:var(--border-subtle);color:var(--primary-hover)}.bc-status-completed[data-v-40a86433]{background:var(--bg-hover);color:var(--text-3)}.bc-card-body[data-v-40a86433]{padding:18px;display:flex;flex-direction:column;gap:8px}.bc-title[data-v-40a86433]{font-size:1.05rem;font-weight:800;color:var(--text-1);margin:0;line-height:1.35}.bc-meta[data-v-40a86433]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-3)}.bc-meta-dot[data-v-40a86433]{color:var(--border-default)}.courses[data-v-40a86433]{padding:80px 0}.course-filter-row[data-v-40a86433]{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:36px}.cf-tab[data-v-40a86433]{padding:7px 18px;border-radius:50px;font-size:.85rem;font-weight:600;border:1.5px solid var(--border-subtle);background:var(--bg-surface);color:var(--text-2);cursor:pointer;transition:all .2s}.cf-tab.active[data-v-40a86433],.cf-tab[data-v-40a86433]:hover{background:var(--primary);color:var(--bg-surface);border-color:var(--primary)}.courses-grid[data-v-40a86433]{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:24px}.course-card[data-v-40a86433]{background:var(--bg-surface);border-radius:16px;overflow:hidden;border:1px solid var(--border-default);display:flex;flex-direction:column;transition:border-color .2s,box-shadow .25s,transform .2s}.course-card[data-v-40a86433]:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-3px)}.course-card-image[data-v-40a86433]{position:relative;height:180px;display:flex;align-items:center;justify-content:center;overflow:hidden}.card-img[data-v-40a86433]{width:100%;height:100%;object-fit:cover}.card-emoji[data-v-40a86433]{font-size:4rem;line-height:1;filter:drop-shadow(0 2px 8px rgba(0,0,0,.15))}.card-badges[data-v-40a86433]{position:absolute;top:12px;left:12px;display:flex;gap:5px;flex-wrap:wrap}.status-badge[data-v-40a86433]{font-size:11px;font-weight:600;border-radius:6px;padding:4px 10px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.status-planned[data-v-40a86433]{background:#8b5cf6d9;color:#fff}.status-coming[data-v-40a86433]{background:#f59e0bd9;color:#fff}.status-passive[data-v-40a86433]{background:#f3f4f6;color:#6b7280}.course-card-body[data-v-40a86433]{padding:18px;display:flex;flex-direction:column;gap:8px;flex:1}.course-title[data-v-40a86433]{font-size:17px;font-weight:700;color:var(--text-1);margin:0;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-authors[data-v-40a86433]{font-size:12px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.course-card-spacer[data-v-40a86433]{flex:1}.course-meta[data-v-40a86433]{display:flex;gap:10px}.meta-chip[data-v-40a86433]{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-3)}.meta-chip svg[data-v-40a86433]{flex-shrink:0}.courses-more[data-v-40a86433]{text-align:center;margin-top:24px}.btn-primary-lg[data-v-40a86433]{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;background:var(--primary);color:var(--bg-surface);border-radius:50px;font-weight:700;font-size:15px;text-decoration:none;transition:opacity .2s}.btn-primary-lg[data-v-40a86433]:hover{opacity:.88}.journey[data-v-40a86433]{padding:80px 0}.journey-grid[data-v-40a86433]{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}.step[data-v-40a86433]{display:flex;align-items:flex-start;gap:16px;padding:14px 0;position:relative}.step[data-v-40a86433]:not(:last-child):after{content:"";position:absolute;left:11px;top:38px;width:2px;height:calc(100% - 8px);background:var(--border-subtle)}.step-dot[data-v-40a86433]{width:24px;height:24px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;position:relative;z-index:1;background:var(--border-subtle);color:var(--primary)}.step.done .step-dot[data-v-40a86433]{background:var(--primary);color:var(--bg-surface)}.step.active .step-dot[data-v-40a86433]{background:var(--primary)}.step-pulse[data-v-40a86433]{width:8px;height:8px;background:#fff;border-radius:50%;animation:pulseBlue 1.5s ease-in-out infinite}.step-info[data-v-40a86433]{display:flex;align-items:center;gap:10px;padding-top:2px}.step-title[data-v-40a86433]{font-size:.92rem;font-weight:600;color:var(--text-1)}.step.done .step-title[data-v-40a86433],.step.pending .step-title[data-v-40a86433]{color:var(--text-3)}.step-tag[data-v-40a86433]{font-size:.72rem;font-weight:700;background:var(--border-subtle);color:var(--primary);padding:2px 8px;border-radius:50px}.progress-card[data-v-40a86433]{background:var(--bg-surface);border-radius:24px;padding:32px;box-shadow:var(--shadow-md);border:1px solid var(--border-subtle);display:flex;flex-direction:column;align-items:center;text-align:center}.pc-course-badge[data-v-40a86433]{background:var(--bg-hover);color:var(--primary);font-size:.8rem;font-weight:700;padding:4px 14px;border-radius:50px;border:1px solid var(--border-subtle);margin-bottom:24px}.pc-ring-wrap[data-v-40a86433]{position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:24px}.pc-pct[data-v-40a86433]{position:absolute;display:flex;flex-direction:column;align-items:center}.pc-num[data-v-40a86433]{font-size:1.8rem;font-weight:900;color:var(--text-1)}.pc-sub[data-v-40a86433]{font-size:.75rem;color:var(--text-3)}.pc-ring[data-v-40a86433]{fill:none;stroke:var(--primary);stroke-linecap:round;transform:rotate(-90deg);transform-box:fill-box;transform-origin:center}.pc-stats[data-v-40a86433]{display:flex;gap:32px;margin-bottom:20px}.pc-stat[data-v-40a86433]{display:flex;flex-direction:column;align-items:center}.pc-stat-n[data-v-40a86433]{font-size:1.3rem;font-weight:800;color:var(--text-1)}.pc-stat-l[data-v-40a86433]{font-size:.75rem;color:var(--text-3)}.streak[data-v-40a86433]{display:flex;gap:6px;margin-bottom:8px}.streak-day[data-v-40a86433]{width:24px;height:24px;border-radius:6px;background:var(--border-subtle)}.streak-day.done[data-v-40a86433]{background:var(--primary)}.streak-day.today[data-v-40a86433]{background:var(--primary);animation:pulseBlue 1.5s ease-in-out infinite}.streak-label[data-v-40a86433]{font-size:.78rem;color:var(--text-3)}.testimonials[data-v-40a86433]{padding:80px 0;background:var(--bg-surface)}.testimonials-grid[data-v-40a86433]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}.testi-card[data-v-40a86433]{background:var(--bg-base);border-radius:20px;padding:28px;border:1px solid var(--border-subtle);transition:transform .2s,box-shadow .2s}.testi-card[data-v-40a86433]:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.testi-stars[data-v-40a86433]{color:var(--yellow);font-size:1rem;margin-bottom:12px;letter-spacing:2px}.testi-text[data-v-40a86433]{font-style:italic;color:var(--text-2);font-size:.9rem;line-height:1.7;margin-bottom:20px}.testi-author[data-v-40a86433]{display:flex;align-items:center;gap:12px}.testi-avatar[data-v-40a86433]{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.85rem;flex-shrink:0}.testi-name[data-v-40a86433]{font-weight:700;font-size:.9rem;color:var(--text-1)}.testi-role[data-v-40a86433]{font-size:.78rem;color:var(--text-3)}.cta-banner[data-v-40a86433]{background:linear-gradient(135deg,#1e3a8a,#1d4ed8);padding:80px 24px;position:relative;overflow:hidden}.cta-deco-1[data-v-40a86433]{position:absolute;top:-80px;right:-100px;width:360px;height:360px;background:#ffffff0f;border-radius:50%}.cta-deco-2[data-v-40a86433]{position:absolute;bottom:-60px;left:-80px;width:280px;height:280px;background:#ffffff0a;border-radius:50%}.cta-inner[data-v-40a86433]{max-width:1000px;margin:0 auto;position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap}.cta-title[data-v-40a86433]{font-size:clamp(1.5rem,3vw,2rem);font-weight:800;color:#fff;margin-bottom:8px}.cta-sub[data-v-40a86433]{color:#ffffffbf;font-size:.95rem}.cta-btns[data-v-40a86433]{display:flex;gap:14px;flex-wrap:wrap}.btn-cta-primary[data-v-40a86433]{text-decoration:none;background:#fff;color:#1d4ed8;font-weight:700;padding:14px 28px;border-radius:12px;white-space:nowrap;transition:transform .2s,box-shadow .2s}.btn-cta-primary[data-v-40a86433]:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0003}.btn-cta-secondary[data-v-40a86433]{text-decoration:none;color:#fff;border:1.5px solid rgba(255,255,255,.5);font-weight:600;padding:14px 28px;border-radius:12px;white-space:nowrap;transition:background .2s}.btn-cta-secondary[data-v-40a86433]:hover{background:#ffffff1a}.footer[data-v-40a86433]{background:#0c1a3a;padding:60px 24px 32px}.footer-inner[data-v-40a86433]{max-width:1200px;margin:0 auto}.footer-grid[data-v-40a86433]{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}.footer-logo[data-v-40a86433]{color:#fff;font-size:1.2rem;font-weight:800;margin-bottom:12px}.footer-about[data-v-40a86433]{color:#ffffff80;font-size:.85rem;line-height:1.7}.footer-heading[data-v-40a86433]{color:#fff9;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;margin-bottom:14px}.footer-links[data-v-40a86433]{list-style:none;padding:0}.footer-links li[data-v-40a86433]{color:#ffffff73;font-size:.85rem;padding:4px 0;cursor:pointer;transition:color .2s}.footer-links li[data-v-40a86433]:hover{color:#fff}.footer-bottom[data-v-40a86433]{border-top:1px solid rgba(255,255,255,.08);padding-top:24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.footer-bottom>span[data-v-40a86433]{color:#ffffff59;font-size:.8rem}.footer-socials[data-v-40a86433]{display:flex;gap:10px}.social-btn[data-v-40a86433]{width:36px;height:36px;border-radius:8px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);color:#ffffff80;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;text-decoration:none;transition:background .2s,color .2s}.social-btn[data-v-40a86433]:hover{background:#ffffff2e;color:#fff}.hamburger[data-v-40a86433]{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;background:none;border:none;cursor:pointer;padding:4px;flex-shrink:0}.hamburger span[data-v-40a86433]{display:block;width:22px;height:2px;background:var(--primary);border-radius:2px;transition:transform .2s,opacity .2s;transform-origin:center}.hamburger.open span[data-v-40a86433]:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger.open span[data-v-40a86433]:nth-child(2){opacity:0}.hamburger.open span[data-v-40a86433]:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.mobile-menu[data-v-40a86433]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99;background:#0f172a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.mobile-menu-inner[data-v-40a86433]{position:absolute;top:68px;left:0;right:0;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);padding:16px 20px 24px;display:flex;flex-direction:column;gap:4px}.mobile-link[data-v-40a86433]{text-decoration:none;color:var(--text-2);font-size:1rem;font-weight:500;padding:12px 14px;border-radius:10px;transition:background .15s,color .15s}.mobile-link[data-v-40a86433]:hover{background:var(--bg-hover);color:var(--primary)}.mobile-menu-cta[data-v-40a86433]{display:flex;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border-subtle)}.mobile-menu-cta .btn-login[data-v-40a86433],.mobile-menu-cta .btn-start[data-v-40a86433]{flex:1;text-align:center}.mobile-menu-enter-active[data-v-40a86433],.mobile-menu-leave-active[data-v-40a86433]{transition:opacity .2s}.mobile-menu-enter-from[data-v-40a86433],.mobile-menu-leave-to[data-v-40a86433]{opacity:0}.mobile-menu-enter-active .mobile-menu-inner[data-v-40a86433],.mobile-menu-leave-active .mobile-menu-inner[data-v-40a86433]{transition:transform .2s}.mobile-menu-enter-from .mobile-menu-inner[data-v-40a86433],.mobile-menu-leave-to .mobile-menu-inner[data-v-40a86433]{transform:translateY(-8px)}@media (max-width: 900px){.hero-inner[data-v-40a86433]{grid-template-columns:1fr}.hero-visual[data-v-40a86433]{display:none}.journey-grid[data-v-40a86433]{grid-template-columns:1fr}.footer-grid[data-v-40a86433]{grid-template-columns:1fr 1fr}.cta-inner[data-v-40a86433]{flex-direction:column;text-align:center}}@media (max-width: 600px){.nav-links[data-v-40a86433],.nav-cta[data-v-40a86433]{display:none}.hamburger[data-v-40a86433]{display:flex}.footer-grid[data-v-40a86433]{grid-template-columns:1fr}.hero-stats[data-v-40a86433]{gap:24px}.hero-btns[data-v-40a86433],.cta-btns[data-v-40a86433]{flex-direction:column}.course-card-image[data-v-40a86433]{height:160px}}.login-page[data-v-c8b07290]{min-height:100vh;background:var(--gradient-hero);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:24px}.login-deco-1[data-v-c8b07290]{position:absolute;top:-80px;right:-80px;width:320px;height:320px;background:#ffffff0f;border-radius:50%}.login-deco-2[data-v-c8b07290]{position:absolute;bottom:-100px;left:-60px;width:260px;height:260px;background:#ffffff0a;border-radius:50%}.login-card[data-v-c8b07290]{background:var(--bg-surface);border-radius:24px;padding:40px 36px;max-width:420px;width:100%;box-shadow:var(--shadow-lg);animation:fadeUp .45s ease both;position:relative;z-index:1;text-align:center}.btn-ocean[data-v-c8b07290]:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.login-logo-mark[data-v-c8b07290]{width:44px;height:44px;background:var(--gradient-hero);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;margin:0 auto 20px}.state-box[data-v-c8b07290]{padding:8px 0}.result-icon[data-v-c8b07290]{font-size:2.4rem;margin-bottom:12px}.result-title[data-v-c8b07290]{font-size:20px;font-weight:800;color:var(--text-1);margin-bottom:8px}.result-text[data-v-c8b07290]{color:var(--text-3);font-size:14px;line-height:1.6;margin-bottom:0}
