.layout[data-v-cb2a6d0b]{min-height:100vh;display:flex;flex-direction:column;background:#f3f4f6;color:#1f2937}.layout__header[data-v-cb2a6d0b]{padding:24px 32px;background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff}.layout__header h1[data-v-cb2a6d0b]{margin:0;font-size:28px;font-weight:600}.layout__header p[data-v-cb2a6d0b]{margin-top:8px;font-size:16px;opacity:.9}.layout__main[data-v-cb2a6d0b]{flex:1;padding:24px}.disclaimer[data-v-cb2a6d0b]{position:fixed;right:16px;bottom:16px;background:#0f172ae6;color:#e5e7eb;padding:8px 12px;border-radius:8px;font-size:12px;box-shadow:0 8px 20px #0f172a40;z-index:1000}/**
* 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,.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.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[data-v-9d86b639]{display:flex;flex-direction:column;gap:12px;height:480px}.terminal__display[data-v-9d86b639]{flex:1;background:#0f172a;border-radius:12px;overflow:hidden}.terminal__input[data-v-9d86b639]{display:flex;gap:12px}.terminal__input input[data-v-9d86b639]{flex:1;border:1px solid #1f2937;border-radius:999px;padding:10px 16px;background:#0f172a;color:#e2e8f0}.terminal__input input[data-v-9d86b639]:focus{outline:none;border-color:#38bdf8}.button[data-v-9d86b639]{border:none;border-radius:999px;padding:10px 18px;font-size:14px;font-weight:500;transition:transform .15s ease,box-shadow .15s ease,background .3s ease}.button--primary[data-v-9d86b639]{background:linear-gradient(135deg,#38bdf8,#6366f1);color:#fff;box-shadow:0 10px 20px #38bdf840}.button--primary[data-v-9d86b639]:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.dashboard[data-v-f2cdf582]{display:grid;gap:24px;grid-template-columns:repeat(12,1fr)}.panel[data-v-f2cdf582]{background:#fff;border-radius:16px;padding:24px;box-shadow:0 12px 32px #0f172a14}.panel h2[data-v-f2cdf582]{margin-top:0;margin-bottom:16px;font-size:20px;font-weight:600}.panel--form[data-v-f2cdf582]{grid-column:span 4}.panel--terminal[data-v-f2cdf582]{grid-column:span 8}.panel--installer[data-v-f2cdf582]{grid-column:span 12}.form[data-v-f2cdf582]{display:flex;flex-direction:column;gap:16px}.form__grid[data-v-f2cdf582]{display:grid;gap:16px;grid-template-columns:repeat(2,1fr)}label[data-v-f2cdf582]{display:flex;flex-direction:column;font-size:14px;gap:8px}label span[data-v-f2cdf582]{color:#4b5563;font-weight:500}label input[data-v-f2cdf582],label textarea[data-v-f2cdf582]{border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px;font-size:14px;transition:border-color .2s ease}label input[data-v-f2cdf582]:focus,label textarea[data-v-f2cdf582]:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 3px #6366f126}.button[data-v-f2cdf582]{border:none;border-radius:999px;padding:10px 18px;font-size:14px;font-weight:500;transition:transform .15s ease,box-shadow .15s ease,background .3s ease}.button--primary[data-v-f2cdf582]{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;box-shadow:0 10px 20px #6366f140}.button--primary[data-v-f2cdf582]:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.button--primary[data-v-f2cdf582]:not(:disabled):hover{transform:translateY(-1px)}.button--ghost[data-v-f2cdf582]{border:1px solid #e5e7eb;background:transparent;color:#4b5563}.button--ghost[data-v-f2cdf582]:hover{border-color:#6366f1;color:#6366f1}.installers[data-v-f2cdf582]{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.installer-card[data-v-f2cdf582]{background:#f9fafb;border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:12px;border:1px solid transparent;transition:border-color .2s ease,transform .2s ease}.installer-card[data-v-f2cdf582]:hover{transform:translateY(-2px);border-color:#6366f166}.installer-card h3[data-v-f2cdf582]{margin:0;font-size:18px;font-weight:600}.installer-card p[data-v-f2cdf582]{margin:0;color:#4b5563;flex:1}.installer-card__header[data-v-f2cdf582]{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.installer-card__title[data-v-f2cdf582]{display:flex;align-items:center;gap:8px}.installer-card__icon[data-v-f2cdf582]{width:20px;height:20px;border-radius:4px}.auth-select[data-v-f2cdf582]{border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px;font-size:14px}.installer-card__tags[data-v-f2cdf582]{display:flex;gap:6px;flex-wrap:wrap}.installer-card__tags span[data-v-f2cdf582]{background:#4f46e51f;color:#4c1d95;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:500}.error[data-v-f2cdf582]{margin-top:12px;color:#ef4444;font-size:14px}@media (max-width: 1200px){.panel--form[data-v-f2cdf582],.panel--terminal[data-v-f2cdf582]{grid-column:span 12}}@media (max-width: 768px){.form__grid[data-v-f2cdf582]{grid-template-columns:1fr}}:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;background-color:#f3f4f6;color:#1f2937}*,*:before,*:after{box-sizing:border-box}body{margin:0}button{font:inherit;cursor:pointer}
