/**
 * 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;inset: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;inset:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{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}.gui-view{width:100%;height:100%;position:relative;background-color:#050608;overflow:hidden}.gui-view__canvas-container{position:absolute;inset:0;overflow:hidden}.gui-view__overlay{position:absolute;inset:0;background-color:#050608d9;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10;backdrop-filter:blur(4px)}.gui-view__spinner{width:48px;height:48px;border:3px solid transparent;border-top-color:#3b82f6;border-radius:50%;animation:gui-spin 1s linear infinite;margin-bottom:16px}@keyframes gui-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.gui-view__message{color:#e5e7eb;font-size:14px;text-align:center;max-width:300px}.gui-view__retry-button{margin-top:16px;padding:8px 16px;background-color:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:background-color .15s ease}.gui-view__retry-button:hover{background-color:#2563eb}.gui-view__retry-button:focus{outline:none;box-shadow:0 0 0 2px #050608,0 0 0 4px #3b82f6}.gui-view__status-bar{position:absolute;top:8px;right:12px;display:flex;align-items:center;gap:6px;background-color:#0f1115e6;padding:4px 10px;border-radius:4px;font-size:12px;color:#b3b6c2;z-index:5}.gui-view__status-indicator{width:8px;height:8px;border-radius:50%;background-color:#6b7280}.gui-view__status-indicator--connected{background-color:#22c55e;box-shadow:0 0 6px #22c55e80}.gui-view__status-indicator--connecting{background-color:#f59e0b;animation:status-pulse 1.5s ease-in-out infinite}.gui-view__status-indicator--error{background-color:#ef4444}.gui-view__status-indicator--disconnected{background-color:#6b7280}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.4}}.gui-view__status-text{text-transform:capitalize}.split-pane{display:flex;width:100%;height:100%;overflow:hidden;position:relative}.split-pane--horizontal{flex-direction:row}.split-pane--vertical{flex-direction:column}.split-pane--dragging{pointer-events:none}.split-pane--dragging>*{pointer-events:auto}.split-pane__first,.split-pane__second{overflow:hidden;position:relative;min-width:0;min-height:0}.split-pane__first{flex-shrink:0}.split-pane__second{flex:1}.split-pane__divider{flex-shrink:0;position:relative;background-color:#1a1d24;display:flex;align-items:center;justify-content:center;z-index:10;transition:background-color .15s ease}.split-pane__divider:hover,.split-pane__divider:focus{background-color:#252932;outline:none}.split-pane__divider:focus-visible{box-shadow:0 0 0 2px #3b82f6}.split-pane__divider--horizontal{width:6px;cursor:col-resize}.split-pane__divider--vertical{height:6px;cursor:row-resize}.split-pane__divider-handle{background-color:#4a5568;border-radius:2px;transition:background-color .15s ease,transform .15s ease}.split-pane__divider--horizontal .split-pane__divider-handle{width:2px;height:32px}.split-pane__divider--vertical .split-pane__divider-handle{width:32px;height:2px}.split-pane__divider:hover .split-pane__divider-handle,.split-pane__divider:focus .split-pane__divider-handle{background-color:#718096}.split-pane--dragging .split-pane__divider-handle{background-color:#3b82f6;transform:scale(1.2)}.split-pane__divider:before{content:"";position:absolute}.split-pane__divider--horizontal:before{inset:0 -4px}.split-pane__divider--vertical:before{inset:-4px 0}.view-toolbar{display:flex;align-items:center;gap:4px;padding:4px;background-color:#0f1115;border-radius:6px}.view-toolbar__group{display:flex;gap:2px}.view-toolbar__button{display:flex;align-items:center;gap:4px;padding:4px 8px;background-color:transparent;border:1px solid transparent;border-radius:4px;color:#9ca3af;font-size:12px;cursor:pointer;transition:all .15s ease;white-space:nowrap}.view-toolbar__button:hover{background-color:#1a1d24;color:#e5e7eb}.view-toolbar__button:focus{outline:none;box-shadow:0 0 0 2px #3b82f6}.view-toolbar__button--active{background-color:#1e40af;border-color:#3b82f6;color:#fff}.view-toolbar__button--active:hover{background-color:#1d4ed8}.view-toolbar__icon{font-family:monospace;font-weight:700;font-size:11px;min-width:16px;text-align:center}.view-toolbar__label{font-weight:500}@media (max-width: 768px){.view-toolbar__label{display:none}.view-toolbar__button{padding:6px}.view-toolbar__icon{font-size:12px}}.tab-pane{display:flex;flex-direction:column;width:100%;height:100%;background-color:#0a0b0d;overflow:hidden}.tab-pane__toolbar{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;background-color:#0f1115;border-bottom:1px solid #1a1d24;flex-shrink:0;gap:12px}.tab-pane__shortcuts-hint{font-size:11px;color:#6b7280;white-space:nowrap}.tab-pane__shortcuts-hint span{cursor:help}.tab-pane__content{flex:1;position:relative;overflow:hidden}.tab-pane__terminal-only,.tab-pane__gui-only{width:100%;height:100%;position:absolute;top:0;left:0}.tab-pane__gui-unavailable{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background-color:#050608;color:#9ca3af;font-size:14px}.tab-pane__gui-hint{position:absolute;bottom:16px;right:16px;display:flex;align-items:center;gap:12px;padding:12px 16px;background-color:#1e40aff2;border:1px solid #3b82f6;border-radius:8px;box-shadow:0 4px 12px #0006;z-index:100;animation:hint-slide-in .3s ease-out}@keyframes hint-slide-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.tab-pane__gui-hint span{color:#e5e7eb;font-size:14px;font-weight:500}.tab-pane__gui-hint-action{padding:6px 12px;background-color:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;transition:background-color .15s ease}.tab-pane__gui-hint-action:hover{background-color:#2563eb}.tab-pane__gui-hint-action:focus{outline:none;box-shadow:0 0 0 2px #1e40af,0 0 0 4px #3b82f6}.tab-pane__gui-hint-dismiss{padding:4px 8px;background-color:transparent;color:#9ca3af;border:none;border-radius:4px;font-size:16px;cursor:pointer;transition:color .15s ease}.tab-pane__gui-hint-dismiss:hover{color:#e5e7eb}@media (max-width: 768px){.tab-pane__toolbar{padding:4px;gap:8px}.tab-pane__shortcuts-hint{display:none}.tab-pane__gui-hint{bottom:8px;right:8px;left:8px;flex-wrap:wrap;justify-content:center}}:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:#0b0c0f;color:#f2f4f8}body,html,#root{margin:0;padding:0;width:100%;height:100%;background-color:#0b0c0f}body{display:flex}button{font-family:inherit;border:none;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.app-shell{display:flex;flex-direction:column;width:100%;height:100%}.header{padding:.75rem 1rem;border-bottom:1px solid #1f2024;display:flex;justify-content:space-between;align-items:center}.header .brand{display:flex;align-items:center;gap:.6rem}.header .logo{width:32px;height:32px}.header h1{font-size:1rem;margin:0;letter-spacing:.08em;text-transform:uppercase}.version-badge{font-size:.65rem;color:#888;background:#ffffff1a;padding:2px 6px;border-radius:4px;margin-left:8px;font-weight:400;letter-spacing:.02em}.main,.main.full-width{display:flex;flex:1;overflow:hidden}.main.full-width .terminal-container{width:100%;height:100%}.sidebar{width:280px;border-right:1px solid #1f2024;padding:1rem;overflow-y:auto;background-color:#0f1115}.terminal-pane{flex:1;background-color:#050608;position:relative;overflow:hidden;min-height:0}.terminal-pane.hidden{display:none}.status{font-size:.85rem;color:#b3b6c2;margin-top:.5rem}.session-list{list-style:none;padding:0;margin:.5rem 0}.session-toolbar{display:flex;flex-direction:column;gap:.5rem}.session-toolbar input{width:100%;padding:.35rem .4rem;border-radius:4px;border:1px solid #2b2f38;background:#0b0c0f;color:#f2f4f8}.pill-group{display:flex;gap:.35rem}.pill{padding:.2rem .6rem;border-radius:999px;border:1px solid #2a2e38;background:transparent;color:#c5c8d6;font-size:.75rem}.pill.active{background:#3f7df433;border-color:#3f7df4;color:#fff}.archive-toggle{font-size:.8rem;color:#a7aab7;display:flex;align-items:center;gap:.25rem}.activity-filter{font-size:.8rem;color:#a7aab7;display:flex;flex-direction:column;gap:.2rem}.activity-filter select{background:#0f1115;border:1px solid #2f333c;color:#f2f4f8;padding:.2rem .3rem;border-radius:4px}.session-item{padding:.5rem;border-radius:6px;cursor:pointer;border:1px solid transparent;background-color:#ffffff05;margin-bottom:.35rem;transition:border-color .2s ease}.session-item.active{border-color:#3f7df4;background-color:#3f7df41a}.session-item.busy{border-color:#f5a524;background-color:#f5a52414}.session-item.archived{opacity:.5}.session-item small{display:block;color:#8b8f9e}.session-activity{color:#a6aac0}.session-item.empty{text-align:center;color:#8b8f9e;border:1px dashed #2f333c}.session-row-actions{margin-top:.35rem;display:flex;gap:.5rem}.link-button{background:none;border:none;padding:0;color:#7aa7ff;font-size:.8rem;cursor:pointer}.link-button:hover{text-decoration:underline}.session-fork{display:block;font-size:.75rem;color:#a6aac0;margin-top:.15rem}.session-actions{margin-top:1rem;display:flex;gap:.5rem}.session-actions button{flex:1;padding:.4rem .5rem;border-radius:4px;border:none;cursor:pointer;background:#1a73e8;color:#fff;font-weight:600}.session-actions button.secondary,button.secondary{background:#272b34;color:#d4d7e2}.terminal-container{width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.connection-overlay{position:absolute;inset:0;background:#050608d9;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;z-index:2}.spinner{width:48px;height:48px;border:4px solid #1f2024;border-top-color:#3f7df4;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.connection-message{color:#b3b6c2;font-size:.95rem;letter-spacing:.05em}.force-reconnect-button{margin-top:.75rem;padding:.5rem 1rem;border-radius:6px;background:#f59e0b;color:#fff;font-weight:600;font-size:.85rem;transition:background .2s ease}.force-reconnect-button:hover{background:#fbbf24}.takeover-hint{margin-top:.5rem;color:#f59e0b;font-size:.8rem;opacity:.9}.circuit-breaker-hint{margin-top:.5rem;color:#ef4444;font-size:.8rem;opacity:.9}.modal-backdrop{position:fixed;inset:0;background:#050608b3;display:flex;align-items:center;justify-content:center;z-index:10}.modal{background:#11131a;border:1px solid #2c303a;border-radius:10px;width:560px;max-width:calc(100% - 2rem);max-height:calc(100% - 2rem);display:flex;flex-direction:column;box-shadow:0 10px 30px #0006}.modal-header{padding:1rem;border-bottom:1px solid #1d1f26;display:flex;justify-content:space-between;align-items:center}.modal-body{padding:1rem;flex:1;overflow-y:auto}.modal-actions{padding:.75rem 1rem;border-top:1px solid #1d1f26;display:flex;justify-content:flex-end;gap:.5rem}.modal-toolbar{padding:.75rem 1rem;display:flex;gap:.5rem;align-items:center;border-bottom:1px solid #1d1f26}.modal-toolbar select{margin:0 .35rem;background:#0f1115;border:1px solid #2f333c;color:#f2f4f8;padding:.2rem}.icon-button{background:none;border:none;color:#f2f4f8;font-size:1.4rem;cursor:pointer}.eyebrow{text-transform:uppercase;font-size:.7rem;letter-spacing:.08em;color:#7b7f8f;margin:0}.log-stream{background:#050608;border-radius:6px;padding:.75rem;border:1px solid #1f2024;font-size:.85rem;color:#e5e7ef;min-height:200px;max-height:320px;overflow-y:auto;white-space:pre-wrap}.session-logs-modal .modal-toolbar{flex-wrap:wrap}.search-container{display:flex;align-items:center;gap:.35rem;position:relative}.search-input{background:#0f1115;border:1px solid #2f333c;border-radius:4px;color:#f2f4f8;padding:.35rem .5rem;font-size:.85rem;width:160px}.search-input:focus{outline:none;border-color:#3f7df4}.search-input::placeholder{color:#7b7f8f}.search-clear{background:none;border:none;color:#7b7f8f;cursor:pointer;padding:.1rem .3rem;font-size:1rem;line-height:1}.search-clear:hover{color:#f2f4f8}.match-count{font-size:.75rem;color:#7b7f8f;white-space:nowrap}.search-highlight{background:#ffc80066;color:inherit;padding:0 2px;border-radius:2px}.error{color:#f77}.spacer{flex:1}.toast{margin:.5rem 1rem;padding:.4rem .75rem;background:#3f7df426;border:1px solid rgba(63,125,244,.4);border-radius:6px;font-size:.85rem;color:#dfe6ff}.tab-bar{display:flex;padding:.4rem .75rem;border-bottom:1px solid #1f2024;background:#0f1115}.tab-list{display:flex;gap:.4rem;align-items:center}.tab-button{background:#15171c;border-radius:6px;padding:.35rem .75rem;color:#d7dae7;display:flex;align-items:center;gap:.4rem;font-size:.9rem;border:1px solid transparent}.tab-button.active{border-color:#3f7df4;color:#fff}.tab-button.add{width:32px;justify-content:center}.sortable-tab{display:flex;touch-action:none}.sortable-tab.dragging{z-index:100}.sortable-tab.dragging .tab-button{box-shadow:0 4px 12px #0006;border-color:#3f7df4}.tab-label{max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tab-close{font-size:1rem;line-height:1}.tab-status{width:8px;height:8px;border-radius:50%;display:inline-block}.tab-status-connecting,.tab-status-reconnecting{background:#f5a524}.tab-status-connected{background:#2fd07e}.tab-status-closed{background:#d9534f}.tab-bell-icon{font-size:12px;display:inline-block;animation:bell-ring .6s ease-in-out infinite;margin-left:4px}@keyframes bell-ring{0%,to{transform:rotate(0)}20%{transform:rotate(12deg)}40%{transform:rotate(-12deg)}60%{transform:rotate(8deg)}80%{transform:rotate(-8deg)}}.tab-empty{margin:auto;text-align:center;color:#b3b6c2;display:flex;flex-direction:column;gap:.5rem}.tab-empty button{padding:.4rem .8rem;border-radius:6px;background:#3f7df4;color:#fff}.project-picker-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10}.project-picker{width:360px;max-width:90%;background:#0f1115;border:1px solid #1f2024;border-radius:10px;padding:1rem;box-shadow:0 10px 30px #0006}.project-picker ul{list-style:none;padding:0;margin:0;max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.project-option{width:100%;background:#15171c;border-radius:8px;padding:.6rem .75rem;color:#fff;border:1px solid transparent;display:flex;justify-content:space-between;gap:.5rem;text-align:left}.project-option strong{display:block}.project-option p{margin:0;color:#b1b5c6;font-size:.85rem}.picker-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.picker-header button{background:transparent;color:#fff;font-size:1.2rem}.picker-empty{color:#b0b3c4;text-align:center}.project-info{flex:1}.project-header{display:flex;align-items:center;gap:.5rem}.project-namespace{color:#6e7280;font-size:.8rem}.status-indicator{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.status-online{background-color:#10b981;box-shadow:0 0 6px #10b98180}.status-degraded{background-color:#f59e0b;box-shadow:0 0 6px #f59e0b80}.status-offline{background-color:#ef4444;box-shadow:0 0 6px #ef444480}.status-unknown{background-color:#6b7280}.picker-search{margin-bottom:.75rem}.picker-search input{width:100%;padding:.5rem .75rem;background:#1a1d24;border:1px solid #2c303a;border-radius:6px;color:#fff;font-size:.9rem}.picker-search input:focus{outline:none;border-color:#3f7df4}.picker-search input::placeholder{color:#6e7280}.picker-sort{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}.sort-label{color:#6e7280;font-size:.8rem}.sort-btn{padding:.25rem .5rem;background:#1a1d24;border:1px solid #2c303a;border-radius:4px;color:#b1b5c6;font-size:.75rem;cursor:pointer;transition:all .15s ease}.sort-btn:hover{background:#252830;border-color:#3f7df4}.sort-btn.active{background:#3f7df4;border-color:#3f7df4;color:#fff}.picker-pagination{display:flex;justify-content:center;align-items:center;gap:.75rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #2c303a}.page-btn{padding:.35rem .75rem;background:#1a1d24;border:1px solid #2c303a;border-radius:4px;color:#b1b5c6;font-size:.8rem;cursor:pointer;transition:all .15s ease}.page-btn:hover:not(:disabled){background:#252830;border-color:#3f7df4;color:#fff}.page-btn:disabled{opacity:.4;cursor:not-allowed}.page-info{color:#6e7280;font-size:.8rem}.picker-results-count{text-align:center;color:#6e7280;font-size:.75rem;margin-top:.5rem}.main.auth{display:flex;align-items:center;justify-content:center}.auth-card{background:#11131a;border:1px solid #2c303a;border-radius:10px;padding:1.5rem;width:320px;max-width:90%}.auth-card h2{margin:0 0 1rem;font-size:1.2rem}.auth-card label{display:block;margin-bottom:.75rem;font-size:.85rem;color:#b3b6c2}.auth-card input{display:block;width:100%;margin-top:.35rem;padding:.5rem;border-radius:6px;border:1px solid #2b2f38;background:#0b0c0f;color:#f2f4f8;box-sizing:border-box}.auth-card input:focus{outline:none;border-color:#3f7df4}.auth-card input:disabled{opacity:.6}.auth-card button[type=submit]{width:100%;margin-top:.5rem;padding:.6rem;border-radius:6px;background:#3f7df4;color:#fff;font-weight:600}.auth-card button[type=submit]:hover:not(:disabled){background:#5a94ff}.auth-card .error{margin:0 0 .75rem;padding:.5rem;background:#ff77771a;border-radius:4px;font-size:.85rem}.session-info{display:flex;align-items:center;gap:.75rem;font-size:.85rem;color:#b3b6c2}.session-info .username-button{background:none;border:none;color:#7aa7ff;padding:0;font-size:.85rem;cursor:pointer}.session-info .username-button:hover{text-decoration:underline}.session-info button.secondary{padding:.3rem .6rem;font-size:.8rem}button.danger{background:#d9534f;color:#fff}button.danger:hover:not(:disabled){background:#e36460}.profile-modal{width:400px}.profile-modal .modal-close{background:none;border:none;color:#b3b6c2;font-size:1.5rem;cursor:pointer;padding:0;line-height:1}.profile-modal .modal-close:hover{color:#fff}.profile-modal .modal-header h2{margin:0;font-size:1.1rem}.profile-modal .modal-footer{padding:.75rem 1rem;border-top:1px solid #1d1f26;display:flex;justify-content:flex-end;gap:.5rem}.profile-modal .modal-footer button{padding:.4rem .75rem;border-radius:6px;font-size:.85rem}.profile-info{display:flex;gap:1rem;align-items:flex-start}.profile-avatar{width:48px;height:48px;border-radius:50%;background:#3f7df4;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:600;color:#fff;flex-shrink:0}.profile-details{flex:1}.profile-field{margin-bottom:.75rem}.profile-field:last-child{margin-bottom:0}.profile-field label{display:block;font-size:.75rem;color:#7b7f8f;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.profile-field span{font-size:.9rem}.profile-field .user-id{font-family:monospace;font-size:.8rem;color:#b3b6c2}.password-modal{width:380px}.password-modal .modal-close{background:none;border:none;color:#b3b6c2;font-size:1.5rem;cursor:pointer;padding:0;line-height:1}.password-modal .modal-close:hover{color:#fff}.password-modal .modal-header h2{margin:0;font-size:1.1rem}.password-modal .modal-body{padding:1rem}.password-modal .modal-footer{padding:.75rem 1rem;border-top:1px solid #1d1f26;display:flex;justify-content:flex-end;gap:.5rem}.password-modal .modal-footer button{padding:.4rem .75rem;border-radius:6px;font-size:.85rem}.password-modal .modal-footer button:not(.secondary){background:#3f7df4;color:#fff}.password-modal .modal-footer button:not(.secondary):hover:not(:disabled){background:#5a94ff}.password-modal .error{margin:0 0 .75rem;padding:.5rem;background:#ff77771a;border-radius:4px;font-size:.85rem}.form-field{margin-bottom:.75rem}.form-field:last-child{margin-bottom:0}.form-field label{display:block;font-size:.85rem;color:#b3b6c2;margin-bottom:.35rem}.form-field input{display:block;width:100%;padding:.5rem;border-radius:6px;border:1px solid #2b2f38;background:#0b0c0f;color:#f2f4f8;box-sizing:border-box}.form-field input:focus{outline:none;border-color:#3f7df4}.form-field input:disabled{opacity:.6}.field-hint{display:block;font-size:.75rem;color:#7b7f8f;margin-top:.25rem}.confirm-dialog{width:360px}.confirm-dialog .modal-header h2{margin:0;font-size:1.1rem}.confirm-dialog .modal-body p{margin:0 0 .5rem}.confirm-dialog .modal-body p:last-child{margin-bottom:0}.confirm-dialog .modal-body .hint{font-size:.85rem;color:#7b7f8f}.confirm-dialog .modal-footer{padding:.75rem 1rem;border-top:1px solid #1d1f26;display:flex;justify-content:flex-end;gap:.5rem}.confirm-dialog .modal-footer button{padding:.4rem .75rem;border-radius:6px;font-size:.85rem}.admin-modal{width:900px;max-width:95%;max-height:90%}.admin-form-modal{width:600px;max-height:90vh}.admin-form-modal form{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.admin-form-modal .modal-body{flex:1;overflow-y:auto;min-height:0}.admin-detail-modal{width:800px;max-height:85vh;display:flex;flex-direction:column}.admin-toolbar{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid #1d1f26;background:#0f1115}.admin-body{min-height:300px;max-height:500px;overflow-y:auto}.admin-detail-body{flex:1;overflow-y:auto;min-height:0}.primary-button{padding:.4rem .8rem;border-radius:6px;background:#3f7df4;color:#fff;font-weight:500}.primary-button:hover:not(:disabled){background:#5a94ff}.warning-button{padding:.4rem .8rem;border-radius:6px;background:#f59e0b;color:#fff}.warning-button:hover:not(:disabled){background:#fbbf24}.refresh-button{padding:.35rem .6rem}.filter-label{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:#b3b6c2}.filter-label select{background:#0b0c0f;border:1px solid #2b2f38;border-radius:4px;color:#f2f4f8;padding:.3rem .5rem}.loading-text{text-align:center;color:#b3b6c2;padding:2rem}.empty-state{text-align:center;padding:3rem 1rem;color:#b3b6c2}.empty-state button{margin-top:1rem}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th,.admin-table td{padding:.75rem .5rem;text-align:left;border-bottom:1px solid #1d1f26}.admin-table th{color:#7b7f8f;font-weight:500;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.admin-table tbody tr:hover{background:#3f7df40d}.admin-table .project-name{font-weight:500;display:block}.admin-table .project-id{display:block;font-size:.75rem;color:#7b7f8f;font-family:monospace}.admin-table .namespace{font-family:monospace;font-size:.85rem}.admin-table .date{font-size:.8rem;color:#a7aab7}.admin-table .actions{display:flex;gap:.75rem}.admin-table .link-button.danger{background:none;color:#ef4444}.admin-table .icon-button{background:none;border:none;cursor:pointer;padding:.25rem .4rem;border-radius:4px;font-size:1rem;transition:all .2s}.admin-table .icon-button.upgrade-available{color:#f59e0b}.admin-table .icon-button.upgrade-available:hover:not(:disabled){background:#f59e0b26;color:#d97706}.admin-table .icon-button.upgrade-current{color:#10b981;cursor:default}.admin-table .icon-button:disabled{opacity:.5;cursor:not-allowed}.version-outdated{color:#f59e0b;font-family:monospace;font-size:.85rem}.version-current{color:#10b981;font-family:monospace;font-size:.85rem}.status-badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;color:#fff;text-transform:capitalize}.form-section{margin-bottom:1.5rem}.form-section h3{margin:0 0 .75rem;font-size:.9rem;color:#b3b6c2;border-bottom:1px solid #1d1f26;padding-bottom:.5rem}.form-row{display:flex;gap:1rem}.form-row .form-field{flex:1}.form-field textarea{display:block;width:100%;min-height:60px;padding:.5rem;border-radius:6px;border:1px solid #2b2f38;background:#0b0c0f;color:#f2f4f8;box-sizing:border-box;resize:vertical;font-family:inherit}.form-field textarea:focus{outline:none;border-color:#3f7df4}.form-field .required{color:#ef4444}.checkbox-field label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-field input[type=checkbox]{width:auto;margin:0}.section-toggle{background:none;border:none;color:#7aa7ff;font-size:.85rem;padding:0;margin-bottom:.75rem}.section-toggle:hover{text-decoration:underline}.header-content{display:flex;align-items:center;gap:.75rem}.header-content h2{margin:0}.detail-section{margin-bottom:1.5rem}.detail-section h3{margin:0 0 .75rem;font-size:.9rem;color:#7b7f8f;text-transform:uppercase;letter-spacing:.05em}.detail-section h4{margin:1rem 0 .5rem;font-size:.85rem;color:#b3b6c2}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem 1.5rem}.detail-item{display:flex;flex-direction:column;gap:.25rem}.detail-item.full-width{grid-column:1 / -1}.detail-item label{font-size:.75rem;color:#7b7f8f;text-transform:uppercase;letter-spacing:.05em}.detail-item span{font-size:.9rem}.detail-item .mono{font-family:monospace;font-size:.85rem;word-break:break-all}.status-ok{color:#10b981}.status-error{color:#ef4444}.status-message-box{background:#0b0c0f;border:1px solid #2b2f38;border-radius:6px;padding:.75rem;font-size:.85rem;color:#e5e7ef}.pods-section{margin-top:1rem}.pods-table{width:100%;border-collapse:collapse;font-size:.85rem}.pods-table th,.pods-table td{padding:.5rem;text-align:left;border-bottom:1px solid #1d1f26}.pods-table th{color:#7b7f8f;font-weight:500;font-size:.75rem}.pods-table .mono{font-family:monospace;font-size:.8rem}.phase-running{color:#10b981}.phase-pending{color:#f59e0b}.phase-failed{color:#ef4444}.phase-succeeded{color:#3b82f6}.admin-link{background:none;border:none;color:#7b7f8f;padding:.3rem .6rem;font-size:.8rem;cursor:pointer;border-radius:4px}.admin-link:hover{background:#ffffff0d;color:#b3b6c2}.tab-content{display:flex;flex-direction:column;gap:.25rem}.tab-header{display:flex;align-items:center;gap:.4rem}.metrics-indicator{display:flex;gap:.25rem;padding-left:.1rem}.metric-dot{width:6px;height:6px;border-radius:50%;display:inline-block}.metric-dot.healthy{background-color:#10b981;box-shadow:0 0 4px #10b98166}.metric-dot.warning{background-color:#f59e0b;box-shadow:0 0 4px #f59e0b66}.metric-dot.critical{background-color:#ef4444;box-shadow:0 0 4px #ef444466}.metric-dot.unknown{background-color:#6b7280}.status-bar{display:flex;align-items:center;gap:1.5rem;padding:.5rem 1rem;background:#0a0b0e;border-bottom:1px solid #1f2024;font-size:.8rem;color:#b3b6c2}.status-bar-label{font-weight:500;color:#d7dae7;min-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-bar-item{color:#7b7f8f;font-size:.75rem}.metric-bar-container{display:flex;align-items:center;gap:.5rem}.metric-bar-label{font-size:.7rem;color:#7b7f8f;text-transform:uppercase;letter-spacing:.05em;width:35px}.metric-bar{width:80px;height:6px;background:#1d1f26;border-radius:3px;overflow:hidden}.metric-bar-fill{height:100%;border-radius:3px;transition:width .3s ease}.metric-bar-fill.healthy{background:linear-gradient(90deg,#10b981,#34d399)}.metric-bar-fill.warning{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.metric-bar-fill.critical{background:linear-gradient(90deg,#ef4444,#f87171)}.metric-bar-value{font-size:.75rem;color:#d7dae7;min-width:35px;text-align:right}.network-display{display:flex;align-items:center;gap:.5rem}.network-label{font-size:.7rem;color:#7b7f8f;text-transform:uppercase;letter-spacing:.05em;width:35px}.network-value{display:flex;gap:.75rem;font-size:.75rem}.network-down{color:#3b82f6}.network-up{color:#8b5cf6}.metadata-display{display:flex;align-items:center;gap:.5rem}.metadata-label{font-size:.7rem;color:#7b7f8f;text-transform:uppercase;letter-spacing:.05em;width:35px}.metadata-value{font-size:.75rem;color:#d7dae7;font-family:monospace}.main.full-width.tabbed{flex-direction:column}.main.full-width.tabbed .terminal-pane{flex:1}.health-indicator{display:flex;align-items:center;gap:.4rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;background:#0000004d}.health-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.health-label{color:#b3b6c2;white-space:nowrap}.health-healthy .health-dot{background-color:#10b981;box-shadow:0 0 6px #10b98199;animation:health-pulse 2s ease-in-out infinite}.health-healthy .health-label{color:#10b981}.health-degraded .health-dot{background-color:#f59e0b;box-shadow:0 0 6px #f59e0b99;animation:health-pulse 1.5s ease-in-out infinite}.health-degraded .health-label{color:#f59e0b}.health-unhealthy .health-dot{background-color:#ef4444;box-shadow:0 0 8px #ef4444b3;animation:health-pulse .8s ease-in-out infinite}.health-unhealthy .health-label{color:#ef4444}.health-checking .health-dot{background-color:#6b7280;animation:health-pulse 1s ease-in-out infinite}.health-checking .health-label{color:#6b7280}@keyframes health-pulse{0%,to{opacity:1}50%{opacity:.5}}.upgrade-info{margin:1rem 0;padding:1rem;background:#0f1115;border:1px solid #2f333c;border-radius:6px}.upgrade-info .info-item{display:flex;justify-content:space-between;align-items:center;margin:.75rem 0;padding:.5rem 0;border-bottom:1px solid #1d1f26}.upgrade-info .info-item:last-child{border-bottom:none}.upgrade-info .info-item label{color:#8b8d98;font-weight:500;font-size:.9rem}.upgrade-info .info-item span{color:#f2f4f8;font-size:.9rem}.upgrade-info .info-item span.recommended{color:#10b981;font-weight:600}.warning-box{margin:1rem 0;padding:1rem;background:#ef44441a;border:1px solid #ef4444;border-radius:6px;color:#fca5a5;font-size:.9rem;line-height:1.5}.warning-box strong{color:#ef4444}.info-box{margin:1rem 0;padding:1rem;background:#3b82f61a;border:1px solid #3b82f6;border-radius:6px;color:#93c5fd;font-size:.9rem;line-height:1.5}.info-box.secondary{background:#6b72801a;border-color:#6b7280;color:#9ca3af}.info-box strong{color:#60a5fa}.info-box.secondary strong{color:#d1d5db}.edit-resources-modal{width:450px;max-width:95vw}.form-group{margin:1rem 0}.form-group label{display:block;margin-bottom:.5rem;color:#f2f4f8;font-weight:500;font-size:.9rem}.form-input{width:100%;padding:.75rem;background:#0f1115;border:1px solid #2f333c;border-radius:6px;color:#f2f4f8;font-size:.9rem;font-family:JetBrains Mono,Courier New,Courier,monospace}.form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-input:disabled{opacity:.5;cursor:not-allowed}.form-help{display:block;margin-top:.5rem;color:#8b8d98;font-size:.85rem}.form-group.checkbox-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.form-group.checkbox-group input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#3b82f6}.form-group.checkbox-group .form-help{margin-left:26px}.secrets-modal{width:600px;max-width:95vw;max-height:80vh}.secrets-modal .modal-body{overflow-y:auto;max-height:60vh}.secrets-list{margin:1rem 0}.secrets-list h4{margin:0 0 .75rem;color:#f2f4f8;font-size:.95rem}.no-secrets{color:#8a8f98;font-style:italic;padding:1rem;text-align:center;background:#0f1115;border-radius:6px}.secrets-table{width:100%;border-collapse:collapse;font-size:.85rem}.secrets-table th,.secrets-table td{padding:.5rem;text-align:left;border-bottom:1px solid #2f333c}.secrets-table th{color:#8a8f98;font-weight:500;font-size:.8rem;text-transform:uppercase}.secrets-table td.secret-value-cell{display:flex;align-items:center;gap:.5rem}.secret-input{flex:1;padding:.5rem!important;font-size:.85rem!important}.toggle-visibility{padding:.25rem .5rem;font-size:.75rem;background:#2f333c;border:none;border-radius:4px;color:#8a8f98;cursor:pointer;white-space:nowrap}.toggle-visibility:hover{background:#3f444c;color:#f2f4f8}.danger-small{padding:.25rem .5rem;font-size:.75rem;background:#ef4444;border:none;border-radius:4px;color:#fff;cursor:pointer}.danger-small:hover{background:#dc2626}.danger-small:disabled{background:#6b7280;cursor:not-allowed}.add-secret-section{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #2f333c}.add-secret-section h4{margin:0 0 1rem;color:#f2f4f8;font-size:.95rem}.add-secret-form{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap}.add-secret-form .form-group{flex:1;min-width:150px;margin:0}.add-secret-btn{padding:.75rem 1rem;white-space:nowrap}.dashboard-modal{width:900px;max-width:95vw;max-height:85vh}.dashboard-tabs{display:flex;align-items:center;gap:.5rem;padding:0 1rem;border-bottom:1px solid #2b2f38;background:#13151a}.dashboard-tab{padding:.75rem 1rem;background:none;border:none;color:#8a8f98;font-size:.9rem;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.dashboard-tab:hover{color:#f2f4f8}.dashboard-tab.active{color:#3f7df4;border-bottom-color:#3f7df4}.dashboard-body{overflow-y:auto;max-height:60vh}.dashboard-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.dashboard-card{background:#1a1d24;border:1px solid #2b2f38;border-radius:8px;padding:1rem}.card-label{font-size:.8rem;color:#8a8f98;text-transform:uppercase;margin-bottom:.5rem}.card-value{font-size:1.75rem;font-weight:600;color:#f2f4f8}.card-subtitle{font-size:.75rem;color:#6b7280;margin-top:.25rem}.status-running{color:#10b981}.status-failed{color:#ef4444}.status-total{color:#6b7280;font-size:.85em}.dashboard-section{margin-bottom:1.5rem}.dashboard-section h3{font-size:1rem;color:#f2f4f8;margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:1px solid #2b2f38}.disconnect-breakdown{display:flex;flex-wrap:wrap;gap:.75rem}.disconnect-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#1a1d24;border:1px solid #2b2f38;border-radius:6px}.disconnect-reason{font-size:.85rem;color:#b3b6c2}.disconnect-count{font-size:1rem;font-weight:600;color:#f2f4f8}.flow-control-stats{display:flex;gap:1.5rem}.stat-item{display:flex;flex-direction:column;gap:.25rem}.stat-label{font-size:.8rem;color:#8a8f98}.stat-value{font-size:1.25rem;font-weight:600;color:#f2f4f8}.dashboard-errors .admin-table{width:100%}.error-type-badge{padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;color:#fff}.error-details{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;color:#8a8f98}.dashboard-usage .admin-table{width:100%}.dashboard-overview .empty-state,.dashboard-errors .empty-state,.dashboard-usage .empty-state{padding:2rem;text-align:center;color:#8a8f98}
