/* node_modules/@xterm/xterm/css/xterm.css */
.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;
}

/* src/server/web/styles.css */
:root {
  --term-bg: #1a1b26;
  --term-fg: #c0caf5;
  --term-cursor: #c0caf5;
  --term-selection: rgba(130, 170, 255, 0.3);
  --term-black: #15161e;
  --term-red: #f7768e;
  --term-green: #9ece6a;
  --term-yellow: #e0af68;
  --term-blue: #7aa2f7;
  --term-magenta: #bb9af7;
  --term-cyan: #7dcfff;
  --term-white: #a9b1d6;
  --term-bright-black: #414868;
  --term-bright-white: #c0caf5;
  --bar-bg: #16161e;
  --bar-fg: #565f89;
  --bar-accent: #7aa2f7;
  --overlay-bg: rgba(26, 27, 38, 0.92);
}
@media (prefers-color-scheme: light) {
  :root {
    --term-bg: #f5f5f5;
    --term-fg: #343b58;
    --term-cursor: #343b58;
    --term-selection: rgba(52, 59, 88, 0.2);
    --term-black: #0f0f14;
    --term-red: #8c4351;
    --term-green: #485e30;
    --term-yellow: #8f5e15;
    --term-blue: #34548a;
    --term-magenta: #5a4a78;
    --term-cyan: #0f4b6e;
    --term-white: #343b58;
    --term-bright-black: #9699a3;
    --term-bright-white: #343b58;
    --bar-bg: #e8e8e8;
    --bar-fg: #6c7086;
    --bar-accent: #34548a;
    --overlay-bg: rgba(245, 245, 245, 0.92);
  }
}
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
html,
body {
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  background: var(--term-bg);
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    system-ui,
    sans-serif;
}
#top-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 32px;
  padding: 0 12px;
  background: var(--bar-bg);
  color: var(--bar-fg);
  font-size: 12px;
  user-select: none;
  -webkit-user-select: none;
}
#top-bar.collapsed {
  display: none;
}
#top-bar .left,
#top-bar .right {
  display: flex;
  align-items: center;
  gap: 10px;
}
#toggle-bar {
  display: none;
  position: fixed;
  top: 4px;
  right: 4px;
  z-index: 20;
  width: 20px;
  height: 20px;
  background: var(--bar-bg);
  border: 1px solid var(--bar-fg);
  border-radius: 3px;
  color: var(--bar-fg);
  cursor: pointer;
  font-size: 10px;
  align-items: center;
  justify-content: center;
}
#top-bar.collapsed ~ #toggle-bar {
  display: flex;
}
.status-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--term-green);
  transition: background 0.3s;
}
.status-dot.disconnected {
  background: var(--term-red);
}
.status-dot.connecting {
  background: var(--term-yellow);
  animation: pulse 1s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.35;
  }
}
#bar-btn {
  background: none;
  border: 1px solid var(--bar-fg);
  color: var(--bar-fg);
  padding: 2px 8px;
  border-radius: 3px;
  cursor: pointer;
  font-size: 11px;
  transition: color 0.15s, border-color 0.15s;
}
#bar-btn:hover {
  color: var(--bar-accent);
  border-color: var(--bar-accent);
}
#terminal-container {
  width: 100%;
  height: calc(100vh - 32px);
  background: var(--term-bg);
}
#top-bar.collapsed ~ #terminal-container {
  height: 100vh;
}
#terminal-container .xterm {
  padding: 4px;
}
#loading-overlay,
#reconnect-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  background: var(--overlay-bg);
  z-index: 100;
}
#loading-overlay {
  transition: opacity 0.3s ease;
}
#loading-overlay.hidden {
  opacity: 0;
  pointer-events: none;
}
#reconnect-overlay {
  display: none;
}
#reconnect-overlay.visible {
  display: flex;
}
.spinner {
  width: 36px;
  height: 36px;
  border: 3px solid var(--term-bright-black);
  border-top-color: var(--bar-accent);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
  margin-bottom: 16px;
}
@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
.overlay-msg {
  color: var(--term-fg);
  font-size: 14px;
  opacity: 0.85;
}
.overlay-sub {
  margin-top: 6px;
  color: var(--bar-fg);
  font-size: 12px;
}
.xterm-viewport::-webkit-scrollbar {
  width: 8px;
}
.xterm-viewport::-webkit-scrollbar-track {
  background: transparent;
}
.xterm-viewport::-webkit-scrollbar-thumb {
  background: var(--term-bright-black);
  border-radius: 4px;
}
.xterm-viewport::-webkit-scrollbar-thumb:hover {
  background: var(--bar-fg);
}
@media (max-width: 600px) {
  #top-bar {
    height: 28px;
    font-size: 11px;
    padding: 0 8px;
  }
  #terminal-container {
    height: calc(100vh - 28px);
  }
  #top-bar.collapsed ~ #terminal-container {
    height: 100vh;
  }
}
/*! Bundled license information:

@xterm/xterm/css/xterm.css:
  (**
   * 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.
   *)
*/
/*# sourceMappingURL=data:application/json;base64,[encoded data, 25020 characters] */
