/**
 * 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}:root{--bg-primary: #0b0f19;--bg-secondary: #111827;--bg-tertiary: #1f2937;--bg-canvas: #080c14;--surface-glass: rgba(17, 24, 39, .82);--surface-glass-border: rgba(255, 255, 255, .08);--text-main: #f3f4f6;--text-muted: #9ca3af;--text-dim: #6b7280;--accent-cyan: #00e5ff;--accent-blue: #3b82f6;--accent-blue-hover: #2563eb;--accent-mikrotik: #0284c7;--status-running: #10b981;--status-running-glow: rgba(16, 185, 129, .4);--status-stopped: #64748b;--status-starting: #f59e0b;--status-error: #ef4444;--border-subtle: rgba(255, 255, 255, .1);--border-focus: rgba(0, 229, 255, .5);--font-sans: "Outfit", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono: "JetBrains Mono", monospace;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 20px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .4);--shadow-md: 0 8px 24px rgba(0, 0, 0, .5);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .7);--shadow-cyan: 0 0 20px rgba(0, 229, 255, .25)}*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-main);overflow:hidden;height:100vh;width:100vw;-webkit-user-select:none;user-select:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#0003}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.app-container{display:flex;flex-direction:column;height:100vh;width:100vw;background:var(--bg-primary);position:relative}.top-nav{height:60px;background:var(--surface-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--surface-glass-border);display:flex;align-items:center;justify-content:space-between;padding:0 20px;z-index:40}.brand-section{display:flex;align-items:center;gap:12px}.brand-logo{width:36px;height:36px;background:linear-gradient(135deg,#00e5ff,#0284c7);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;box-shadow:0 0 16px #00e5ff59;color:#0b0f19}.brand-text h1{font-size:1.15rem;font-weight:700;letter-spacing:-.02em;background:linear-gradient(90deg,#fff,#cbd5e1);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.brand-text .tagline{font-size:.72rem;color:var(--accent-cyan);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.nav-actions{display:flex;align-items:center;gap:10px}.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;font-size:.85rem;font-weight:500;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);font-family:var(--font-sans)}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(135deg,#0284c7,#0369a1);color:#fff;border-color:#ffffff1a;box-shadow:0 4px 12px #0284c740}.btn-primary:hover{background:linear-gradient(135deg,#0369a1,#075985);box-shadow:0 4px 16px #0284c766}.btn-secondary{background:#ffffff0d;color:var(--text-main);border-color:var(--border-subtle)}.btn-secondary:hover{background:#ffffff1a;border-color:#fff3}.btn-success{background:linear-gradient(135deg,#059669,#047857);color:#fff;border-color:#ffffff1a}.btn-success:hover{background:linear-gradient(135deg,#047857,#065f46);box-shadow:0 4px 14px #10b9814d}.btn-danger{background:#ef444426;color:#f87171;border-color:#ef44444d}.btn-danger:hover{background:#ef444440;color:#fca5a5}.btn-active-cable{background:#f59e0b;color:#0b0f19;border-color:#fbbf24;box-shadow:0 0 16px #f59e0b66;font-weight:600;animation:pulseCable 1.8s infinite}@keyframes pulseCable{0%{box-shadow:0 0 #f59e0b99}70%{box-shadow:0 0 0 10px #f59e0b00}to{box-shadow:0 0 #f59e0b00}}.btn-sm{padding:5px 10px;font-size:.78rem}.btn-icon{padding:8px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.status-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:9999px;font-size:.75rem;font-weight:600;letter-spacing:.02em}.status-pill.running{background:#10b98126;color:#34d399;border:1px solid rgba(16,185,129,.3)}.status-pill.stopped{background:#64748b26;color:#94a3b8;border:1px solid rgba(100,116,139,.3)}.status-pill.unprovisioned{background:#f59e0b26;color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.pulse-dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor;animation:dotBlink 1.6s ease-in-out infinite}@keyframes dotBlink{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.canvas-wrapper{flex:1;position:relative;overflow:hidden;background-color:var(--bg-canvas)}.canvas-svg{width:100%;height:100%;cursor:grab}.canvas-svg.connecting{cursor:crosshair}.canvas-svg:active{cursor:grabbing}.grid-pattern line{stroke:#ffffff0a;stroke-width:1}.cable-path{fill:none;stroke:#475569;stroke-width:3.5;stroke-linecap:round;transition:stroke .2s,stroke-width .2s;cursor:pointer}.cable-path:hover{stroke:var(--accent-cyan);stroke-width:5}.cable-path.active{stroke:#38bdf8;stroke-dasharray:8 6;animation:flowCable 1s linear infinite}@keyframes flowCable{0%{stroke-dashoffset:14}to{stroke-dashoffset:0}}.cable-badge-container{cursor:pointer;transition:transform .15s ease-out}.cable-badge-container:hover{filter:brightness(1.25)}.cable-badge-box{fill:#090d16;stroke:#0284c7;stroke-width:1.5;filter:drop-shadow(0 2px 6px rgba(0,0,0,.75));transition:all .2s}.cable-badge-box.selected{stroke:var(--accent-cyan);stroke-width:2.2;filter:drop-shadow(0 0 10px rgba(0,229,255,.6))}.cable-badge-box.active{stroke:#38bdf8;fill:#0b1329}.cable-badge-text{font-family:var(--font-mono);font-size:11px;font-weight:700;fill:#38bdf8;letter-spacing:.02em;text-anchor:middle;dominant-baseline:central;pointer-events:none;-webkit-user-select:none;user-select:none}.cable-badge-text.selected{fill:#fff}.cable-badge-text.active{fill:#7dd3fc}.cable-center-label-rect{fill:#0f172a;stroke:#64748b;stroke-width:1.5;filter:drop-shadow(0 4px 10px rgba(0,0,0,.8));transition:all .2s}.cable-center-label-rect.selected{stroke:var(--accent-cyan);stroke-width:2;filter:drop-shadow(0 0 10px rgba(0,229,255,.5))}.cable-center-label-text{font-family:var(--font-mono);font-size:11px;font-weight:600;fill:#e2e8f0;text-anchor:middle;dominant-baseline:central;pointer-events:none;-webkit-user-select:none;user-select:none}.node-group{cursor:pointer;transition:transform .1s ease-out}.node-box{rx:12;ry:12;fill:#111827f2;stroke:#ffffff1f;stroke-width:1.5;transition:all .2s;filter:drop-shadow(0 8px 16px rgba(0,0,0,.6))}.node-group:hover .node-box{stroke:#00e5ff73;filter:drop-shadow(0 12px 24px rgba(0,229,255,.18))}.node-group.selected .node-box{stroke:var(--accent-cyan);stroke-width:2.5;filter:drop-shadow(0 0 20px rgba(0,229,255,.35))}.node-group.running .node-box{border-color:var(--status-running)}.node-status-glow{rx:14;ry:14;fill:none;stroke:var(--status-running);stroke-width:2;opacity:.6;filter:blur(4px)}.canvas-hud{position:absolute;bottom:24px;left:24px;display:flex;align-items:center;gap:8px;background:var(--surface-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:6px 12px;border-radius:var(--radius-lg);border:1px solid var(--surface-glass-border);box-shadow:var(--shadow-lg);z-index:20}.btn-auto-arrange{display:flex;align-items:center;gap:6px;font-size:.78rem;font-weight:700;color:#f1f5f9;padding:5px 10px;border-radius:6px;background:#00e5ff14;border:1px solid rgba(0,229,255,.3);transition:all .2s ease}.btn-auto-arrange:hover{background:#00e5ff33;border-color:#00e5ff;color:#00e5ff;box-shadow:0 0 12px #00e5ff40;transform:translateY(-1px)}.canvas-legend{position:absolute;bottom:24px;right:24px;background:var(--surface-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:8px 16px;border-radius:var(--radius-lg);border:1px solid var(--surface-glass-border);font-size:.76rem;color:var(--text-muted);display:flex;align-items:center;gap:16px;z-index:20}.legend-item{display:flex;align-items:center;gap:6px}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot.green{background:var(--status-running);box-shadow:0 0 8px var(--status-running)}.legend-dot.gray{background:var(--status-stopped)}.legend-dot.blue{background:#38bdf8}.inspector-drawer{position:absolute;top:60px;right:0;width:380px;height:calc(100vh - 60px);background:var(--surface-glass);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-left:1px solid var(--surface-glass-border);box-shadow:-8px 0 32px #000000b3;display:flex;flex-direction:column;z-index:30;transition:transform .3s cubic-bezier(.16,1,.3,1)}.drawer-header{padding:20px;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between}.drawer-header h3{font-size:1.1rem;font-weight:700;display:flex;align-items:center;gap:8px}.drawer-content{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:20px}.info-card{background:#ffffff08;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:14px}.info-card-title{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin-bottom:10px}.info-row{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.04)}.info-row:last-child{border-bottom:none}.info-label{color:var(--text-muted)}.info-value{font-family:var(--font-mono);font-weight:500;color:var(--text-main)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:600px;width:90vw;overflow:hidden;animation:popIn .25s cubic-bezier(.16,1,.3,1)}@keyframes popIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{padding:18px 24px;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:1.15rem;font-weight:700}.modal-body{padding:24px;max-height:75vh;overflow-y:auto}.modal-footer{padding:16px 24px;border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end;gap:12px}.form-group{margin-bottom:16px}.form-label{display:block;font-size:.82rem;font-weight:500;color:var(--text-muted);margin-bottom:6px}.form-input,.form-select{width:100%;background:#0000004d;border:1px solid var(--border-subtle);color:var(--text-main);border-radius:var(--radius-sm);padding:10px 14px;font-size:.9rem;font-family:var(--font-sans);outline:none;transition:border-color .2s}.form-input:focus,.form-select:focus{border-color:var(--accent-cyan)}.terminal-modal-card{background:#0d1117;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-lg);box-shadow:0 24px 60px #000000e6;width:920px;max-width:95vw;height:560px;display:flex;flex-direction:column;overflow:hidden}.terminal-header{background:#161b22;padding:12px 18px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between}.terminal-title{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:.88rem;color:#c9d1d9}.terminal-window-body{flex:1;padding:12px;background:#0d1117;position:relative;overflow:hidden}.xterm{height:100%;padding:4px}.templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.template-card{background:#ffffff08;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:18px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;gap:8px}.template-card:hover{background:#ffffff0f;border-color:var(--accent-cyan);transform:translateY(-2px);box-shadow:var(--shadow-cyan)}.template-title{font-weight:600;font-size:1rem;color:#fff}.template-desc{font-size:.8rem;color:var(--text-muted);line-height:1.4}.toast-banner{position:absolute;top:76px;left:50%;transform:translate(-50%);background:var(--surface-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--accent-cyan);padding:10px 20px;border-radius:9999px;color:var(--accent-cyan);font-size:.85rem;font-weight:500;display:flex;align-items:center;gap:8px;box-shadow:0 8px 24px #00e5ff33;z-index:50;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}.canvas-lab-hud{position:absolute;top:16px;left:16px;z-index:25;transition:all .25s cubic-bezier(.16,1,.3,1)}.lab-hud-card{background:#0f172ae0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);box-shadow:0 12px 32px #0009;padding:14px 16px;width:440px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:10px}.lab-hud-mini{background:#0f172ae0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.12);border-radius:9999px;padding:6px 14px;display:flex;align-items:center;gap:10px;cursor:pointer;box-shadow:0 8px 24px #00000080;transition:all .2s}.lab-hud-mini:hover{border-color:var(--accent-cyan);transform:translateY(-1px)}.lab-mini-title{font-size:.82rem;font-weight:600;color:#f1f5f9;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lab-hud-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.track-tag{font-size:.72rem;font-weight:800;letter-spacing:.05em;padding:2px 8px;border-radius:6px;border:1px solid currentColor;flex-shrink:0}.hud-track-select{background:#0006;border:1px solid rgba(255,255,255,.12);border-radius:6px;color:#e2e8f0;font-size:.8rem;font-weight:600;padding:4px 8px;outline:none;cursor:pointer;max-width:290px;font-family:var(--font-sans)}.hud-track-select:hover,.hud-track-select:focus{border-color:var(--accent-cyan)}.hud-lab-select{width:100%;background:#00000080;border:1px solid rgba(0,229,255,.3);border-radius:6px;color:#fff;font-size:.88rem;font-weight:700;padding:6px 10px;outline:none;cursor:pointer;font-family:var(--font-sans)}.hud-lab-select:hover,.hud-lab-select:focus{border-color:var(--accent-cyan);box-shadow:0 0 10px #00e5ff33}.lab-hud-objective{font-size:.76rem;color:#cbd5e1;line-height:1.4;background:#00000040;padding:6px 10px;border-radius:6px;border-left:2px solid var(--accent-cyan)}.lab-hud-actions{display:flex;align-items:center;justify-content:space-between;padding-top:4px;border-top:1px solid rgba(255,255,255,.06)}.btn-hud-icon{background:transparent;border:none;color:#94a3b8;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:color .15s}.btn-hud-icon:hover{color:#fff;background:#ffffff14}.auth-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 20%,#0d182bf2,#070a13fa);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px;animation:fadeIn .3s ease}.auth-card{background:#0d1322;border:1px solid rgba(0,229,255,.25);box-shadow:0 16px 40px #000c,0 0 30px #00e5ff1a;border-radius:14px;width:100%;max-width:580px;padding:28px;color:#fff;animation:popIn .3s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.auth-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#00e5ff,#3b82f6,#8b5cf6,#00e5ff)}.auth-header{text-align:center;margin-bottom:20px}.auth-logo-row{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:8px}.auth-logo-badge{font-weight:800;font-size:1.15rem;color:#00e5ff;letter-spacing:-.02em}.auth-sub-badge{background:#00e5ff1f;color:#00e5ff;border:1px solid rgba(0,229,255,.3);font-size:.72rem;padding:2px 8px;border-radius:12px;font-weight:600}.auth-title{font-size:1.45rem;font-weight:700;color:#f8fafc;margin-bottom:6px}.auth-desc{font-size:.85rem;color:#94a3b8;line-height:1.5;margin:0}.auth-tabs{display:flex;background:#0006;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:4px;gap:4px;margin-bottom:20px}.auth-tab-btn{flex:1;background:transparent;border:none;color:#94a3b8;font-size:.84rem;font-weight:600;padding:8px 10px;border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:6px}.auth-tab-btn:hover{color:#fff;background:#ffffff0a}.auth-tab-btn.active{color:#00e5ff;background:#00e5ff1f;border:1px solid rgba(0,229,255,.3);box-shadow:0 2px 8px #00e5ff26}.auth-alert{padding:10px 14px;border-radius:8px;font-size:.85rem;margin-bottom:16px;display:flex;align-items:center;gap:8px}.auth-alert-error{background:#ef444426;border:1px solid rgba(239,68,68,.35);color:#fca5a5}.auth-alert-success{background:#10b98126;border:1px solid rgba(16,185,129,.35);color:#6ee7b7}.auth-info-banner{background:#3b82f61a;border:1px solid rgba(59,130,246,.25);color:#93c5fd;border-radius:8px;padding:10px 12px;font-size:.82rem;line-height:1.45;margin-bottom:16px}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-form-group{display:flex;flex-direction:column;gap:6px}.auth-label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#cbd5e1}.auth-input{background:#00000073;border:1px solid rgba(255,255,255,.14);color:#fff;border-radius:8px;padding:10px 14px;font-size:.92rem;outline:none;transition:all .2s ease;font-family:inherit}.auth-input:focus{border-color:#00e5ff;box-shadow:0 0 12px #00e5ff33}.auth-input-code{font-family:var(--font-mono);font-size:1.05rem;letter-spacing:.08em;font-weight:700;color:#38bdf8;text-transform:uppercase}.auth-input-hint{font-size:.74rem;color:#94a3b8}.auth-clickable-code{background:#ffffff14;padding:2px 6px;border-radius:4px;cursor:pointer;color:#38bdf8;transition:background .15s}.auth-clickable-code:hover{background:#00e5ff33;text-decoration:underline}.auth-select{cursor:pointer}.auth-submit-btn{background:linear-gradient(135deg,#0284c7,#0369a1);border:1px solid rgba(56,189,248,.4);color:#fff;font-weight:700;font-size:.95rem;padding:12px 18px;border-radius:8px;cursor:pointer;transition:all .2s;box-shadow:0 4px 14px #0284c74d;margin-top:6px}.auth-submit-btn:hover:not(:disabled){background:linear-gradient(135deg,#0369a1,#0284c7);box-shadow:0 6px 20px #0284c773;transform:translateY(-1px)}.auth-submit-buy{background:linear-gradient(135deg,#10b981,#059669);border-color:#10b98180;box-shadow:0 4px 14px #10b9814d}.auth-submit-buy:hover:not(:disabled){background:linear-gradient(135deg,#059669,#10b981);box-shadow:0 6px 20px #10b98173}.auth-submit-admin{background:linear-gradient(135deg,#8b5cf6,#7c3aed);border-color:#8b5cf680}.auth-submit-btn:disabled{opacity:.5;cursor:not-allowed}.auth-track-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;max-height:180px;overflow-y:auto;padding:2px}.auth-track-card{background:#00000059;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:8px 10px;cursor:pointer;transition:all .15s ease}.auth-track-card:hover{background:#ffffff0a;border-color:#fff3}.auth-track-card.selected{background:#00e5ff1a;border-color:#00e5ff;box-shadow:0 0 10px #00e5ff26}.auth-track-card .track-title{font-weight:700;font-size:.85rem;color:#38bdf8;margin-bottom:2px}.auth-track-card .track-desc{font-size:.72rem;color:#94a3b8;line-height:1.3}.auth-duration-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.auth-duration-card{background:#00000059;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:8px 6px;text-align:center;cursor:pointer;transition:all .15s;display:flex;flex-direction:column;gap:3px}.auth-duration-card:hover{border-color:#fff3}.auth-duration-card.selected{background:#10b9811f;border-color:#10b981;box-shadow:0 0 10px #10b98133}.auth-duration-card .duration-tag{font-size:.64rem;font-weight:700;color:#10b981;text-transform:uppercase}.auth-duration-card .duration-label{font-size:.82rem;font-weight:700;color:#fff}.auth-duration-card .duration-price{font-size:.72rem;color:#94a3b8;font-family:var(--font-mono)}.auth-row-inputs{display:flex;gap:12px}.auth-footer{text-align:center;font-size:.74rem;color:#64748b;margin-top:20px}.nav-auth-section{display:flex;align-items:center;gap:8px;margin-left:14px}.auth-pill-admin{display:flex;align-items:center;gap:6px;background:#8b5cf629;border:1px solid rgba(139,92,246,.4);color:#c4b5fd;font-size:.78rem;font-weight:700;padding:4px 10px;border-radius:20px}.auth-pill-user{display:flex;align-items:center;gap:8px;background:#00000073;border:1px solid rgba(0,229,255,.3);border-radius:20px;padding:3px 10px;color:#fff}.auth-pill-user.low-time{border-color:#ef4444cc;background:#ef444426;animation:pulseLowTime 1.5s infinite}@keyframes pulseLowTime{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 12px #ef444499}}.auth-track-tag{background:#00e5ff26;color:#38bdf8;font-size:.7rem;font-weight:800;padding:2px 6px;border-radius:4px}.auth-pill-user.paused-time{border-color:#f59e0bb3;background:#f59e0b24}.timer-paused-label{background:#f59e0b;color:#0d1322;font-size:.64rem;font-weight:800;padding:1px 5px;border-radius:3px;letter-spacing:.06em;line-height:1.2}.btn-timer-toggle{background:#ffffff1a;border:none;color:#e2e8f0;cursor:pointer;border-radius:4px;padding:3px 5px;display:flex;align-items:center;justify-content:center;transition:all .15s;margin-left:2px}.btn-timer-toggle:hover{background:#ffffff40;color:#fff}.auth-timer-box{display:flex;align-items:center;gap:5px;font-size:.8rem;font-weight:700;color:#f8fafc}.btn-buy-top{border-color:#10b98166!important;color:#34d399!important}.btn-buy-top:hover{background:#10b98126!important}.admin-modal-container{max-width:900px;width:95vw}.admin-modal-body{display:flex;flex-direction:column;gap:20px;max-height:75vh;overflow-y:auto}.admin-create-card{background:#00000059;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:16px}.admin-card-title{font-size:.95rem;font-weight:700;color:#38bdf8;margin-bottom:12px}.admin-form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.admin-create-btn{width:100%}.admin-list-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.admin-filter-group{display:flex;gap:6px}.filter-btn{background:#0000004d;border:1px solid rgba(255,255,255,.08);color:#94a3b8;font-size:.78rem;padding:5px 10px;border-radius:6px;cursor:pointer;transition:all .15s}.filter-btn:hover{color:#fff}.filter-btn.active{background:#00e5ff26;border-color:#00e5ff;color:#00e5ff;font-weight:700}.admin-table-container{overflow-x:auto;border:1px solid rgba(255,255,255,.08);border-radius:8px}.admin-table{width:100%;border-collapse:collapse;font-size:.82rem;text-align:left}.admin-table th{background:#00000080;color:#cbd5e1;font-weight:700;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.08)}.admin-table td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.04);color:#e2e8f0}.admin-table tr:hover{background:#ffffff05}.token-code-cell{display:flex;align-items:center;gap:6px}.token-code-cell code{font-family:var(--font-mono);font-size:.85rem;font-weight:700;color:#38bdf8}.btn-copy-icon{background:transparent;border:none;color:#94a3b8;cursor:pointer;padding:2px 4px;border-radius:4px;font-size:.8rem}.btn-copy-icon:hover{color:#fff;background:#ffffff1a}.track-pill{font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:12px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1)}.track-pill.track-ALL{background:#8b5cf633;border-color:#8b5cf6;color:#c4b5fd}.track-pill.track-MTCNA{background:#38bdf833;border-color:#38bdf8;color:#7dd3fc}.status-badge{font-size:.72rem;font-weight:700;padding:3px 8px;border-radius:12px}.status-badge.status-unused{background:#f59e0b26;color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.status-badge.status-active{background:#10b98126;color:#34d399;border:1px solid rgba(16,185,129,.3)}.status-badge.status-expired{background:#ef444426;color:#f87171;border:1px solid rgba(239,68,68,.3)}.time-unused{color:#94a3b8}.time-active{color:#34d399;font-weight:700}.time-expired{color:#ef4444}.admin-action-row{display:flex;gap:6px}.btn-xs{padding:3px 8px;font-size:.72rem;border-radius:4px}.btn-outline{background:transparent;border:1px solid rgba(255,255,255,.2);color:#e2e8f0;cursor:pointer}.btn-outline:hover{background:#ffffff14;border-color:#fff}.buy-modal-container{max-width:580px;width:92vw}.buy-success-box{text-align:center;padding:24px}.buy-success-box .success-icon{font-size:2.8rem;margin-bottom:10px}.buy-success-box h4{font-size:1.3rem;color:#34d399;margin-bottom:8px}.buy-success-box .code-display{margin:16px 0;background:#00000080;border:1px dashed #34d399;border-radius:8px;padding:12px}.buy-success-box .code-display code{font-size:1.4rem;letter-spacing:.08em;font-weight:800;color:#38bdf8;font-family:var(--font-mono)}.buy-success-box .success-note{font-size:.85rem;color:#94a3b8}
