/**
 * 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}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root,[data-theme=dark]{--bg-primary: #0f1021;--bg-secondary: #1a1b2e;--bg-tertiary: #242540;--bg-hover: #2a2b45;--border: #2e2f4a;--text-primary: #e4e4fc;--text-secondary: #9394b0;--text-muted: #545478;--accent: #6366f1;--accent-hover: #818cf8;--danger: #ef4444;--danger-hover: #f87171;--success: #10b981;--warning: #f59e0b;--radius: 8px;--radius-sm: 4px;--sidebar-width: 280px}[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f4f4f8;--bg-tertiary: #e8e8f0;--bg-hover: #dddde8;--border: #d0d0dc;--text-primary: #1a1a2e;--text-secondary: #4a4a6a;--text-muted: #8888a0;--accent: #6366f1;--accent-hover: #4f46e5;--danger: #ef4444;--danger-hover: #dc2626;--success: #10b981;--warning: #f59e0b}html,body,#root{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);overflow:hidden}.app{display:flex;height:100%}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column}.sidebar-brand{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.brand-logo{width:24px;height:24px}.brand-text{font-size:15px;font-weight:700;color:var(--accent);letter-spacing:.5px}.login-logo{width:48px;height:48px;margin-bottom:8px}.sidebar-menu{flex:1;padding:8px;overflow-y:auto}.sidebar-menu::-webkit-scrollbar{width:4px}.sidebar-menu::-webkit-scrollbar-track{background:transparent}.sidebar-menu::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.sidebar-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:none;background:none;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius);font-size:13px;transition:all .1s;margin-bottom:2px}.sidebar-menu-item:hover{color:var(--text-primary);background:var(--bg-hover)}.sidebar-menu-item.active{color:var(--accent);background:var(--bg-tertiary)}.sidebar-bottom{border-top:1px solid var(--border);padding:8px;position:relative;overflow:visible}.sidebar-bottom-btn{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border:none;background:none;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);font-size:13px;transition:all .1s}.sidebar-bottom-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.sidebar-bottom-btn.active{color:var(--accent);background:var(--bg-tertiary)}.settings-flyout-wrapper{position:relative}.settings-flyout{position:fixed;z-index:1000;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);padding:4px;min-width:160px;box-shadow:0 4px 16px #0000004d}.settings-flyout:before{content:"";position:absolute;left:-8px;top:0;bottom:0;width:8px}.settings-flyout-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border:none;background:none;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);font-size:13px;transition:all .1s}.settings-flyout-item:hover{color:var(--text-primary);background:var(--bg-hover)}.settings-flyout-item.active{color:var(--accent)}.settings-panel{flex:1;display:flex;flex-direction:column;background:var(--bg-primary);overflow:hidden}.settings-panel-header{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.settings-panel-header h2{font-size:15px;font-weight:600;color:var(--text-primary)}.settings-panel-body{flex:1;overflow-y:auto;padding:24px}.settings-panel-body::-webkit-scrollbar{width:4px}.settings-panel-body::-webkit-scrollbar-track{background:transparent}.settings-panel-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.settings-form{max-width:480px}.settings-form h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:16px}.settings-form h3:not(:first-child){margin-top:24px}.settings-form label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px;font-size:13px}.settings-form label>span{color:var(--text-secondary);flex-shrink:0;min-width:180px}.settings-form input,.settings-form select{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);padding:8px 12px;border-radius:var(--radius-sm);font-size:13px;flex:1}.settings-form input:focus,.settings-form select:focus{outline:none;border-color:var(--accent)}.settings-form-actions{margin-top:20px}.settings-msg{padding:10px 14px;border-radius:var(--radius-sm);font-size:13px;margin-bottom:16px}.settings-msg.error{background:#ef44441a;color:var(--danger)}.settings-msg.success{background:#10b9811a;color:var(--success)}.content-panel{flex:1;display:flex;flex-direction:column;background:var(--bg-primary);overflow:hidden;min-height:0}.content-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.content-panel-header h2{font-size:15px;font-weight:600;color:var(--text-primary)}.content-panel-actions{display:flex;align-items:center;gap:8px}.content-panel-add-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;border:none;background:var(--accent);color:#fff;cursor:pointer;border-radius:var(--radius);font-size:12px;font-weight:500;transition:background .15s}.content-panel-add-btn:hover{background:var(--accent-hover)}.content-panel-body{flex:1;overflow-y:auto;padding:16px 20px;min-height:0}.content-panel-body::-webkit-scrollbar{width:4px}.content-panel-body::-webkit-scrollbar-track{background:transparent}.content-panel-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.layout-dropdown{position:relative}.layout-dropdown-btn{display:flex;align-items:center;gap:4px;padding:6px 10px;border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);font-size:12px}.layout-dropdown-btn:hover{background:var(--bg-hover)}.layout-dropdown-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}.layout-dropdown-menu{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);padding:4px;z-index:100;min-width:120px;box-shadow:0 4px 12px #0000004d}.layout-dropdown-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;border:none;background:none;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);font-size:12px}.layout-dropdown-menu button:hover{background:var(--bg-hover);color:var(--text-primary)}.layout-dropdown-menu button.active{color:var(--accent)}.panel-list{display:flex;flex-direction:column}.panel-list-group{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.panel-list-count{margin-left:auto;font-size:11px;background:var(--bg-tertiary);padding:1px 6px;border-radius:8px;font-weight:400}.panel-list-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius);cursor:pointer;transition:background .1s}.panel-list-item:hover{background:var(--bg-hover)}.panel-list-item.indented{padding-left:32px}.panel-list-item-info{flex:1;min-width:0}.panel-list-item-title{display:block;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-list-item-sub{display:block;font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-list-item-code{display:block;font-size:11px;color:var(--accent);background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:Menlo,Monaco,monospace}.panel-list-icon{color:var(--accent);flex-shrink:0}.panel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.panel-grid-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:20px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .15s;text-align:center}.panel-grid-card:hover{background:var(--bg-hover);border-color:var(--accent)}.panel-grid-card-icon{color:var(--accent)}.panel-grid-card-info{min-width:0;width:100%}.panel-grid-card-title{display:block;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-grid-card-sub{display:block;font-size:11px;color:var(--text-muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-grid-card-code{display:block;font-size:10px;color:var(--accent);background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:Menlo,Monaco,monospace}.panel-empty{display:flex;align-items:center;justify-content:center;height:100%;min-height:200px;color:var(--text-muted);font-size:13px}.view-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.view-header h2{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.view-header button,.header-actions button{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center}.view-header button:hover,.header-actions button:hover{color:var(--accent);background:var(--bg-hover)}.header-actions{display:flex;gap:4px}.host-group{border-bottom:1px solid var(--border)}.group-header{display:flex;align-items:center;gap:8px;padding:10px 16px;cursor:pointer;font-size:13px;font-weight:500;color:var(--text-secondary)}.group-header:hover{background:var(--bg-hover)}.host-count{margin-left:auto;font-size:11px;color:var(--text-muted);background:var(--bg-tertiary);padding:1px 6px;border-radius:8px}.host-item{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;transition:background .1s}.host-item.nested{padding-left:36px}.host-item:hover{background:var(--bg-hover)}.host-info{flex:1;min-width:0}.host-label{display:block;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.host-address{display:block;font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.more-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;border-radius:var(--radius-sm);opacity:0;transition:opacity .1s}.host-item:hover .more-btn,.group-header:hover .more-btn{opacity:1}.more-btn:hover{color:var(--text-primary);background:var(--bg-tertiary)}.key-item,.snippet-item{display:flex;align-items:flex-start;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border)}.key-item:hover,.snippet-item:hover{background:var(--bg-hover)}.key-icon,.snippet-icon{color:var(--accent);margin-top:2px;flex-shrink:0}.key-info,.snippet-info{flex:1;min-width:0}.key-name,.snippet-name{display:block;font-size:13px;font-weight:500}.key-date{font-size:11px;color:var(--text-muted)}.snippet-command{display:block;font-size:11px;color:var(--accent);background:var(--bg-tertiary);padding:2px 6px;border-radius:var(--radius-sm);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:Menlo,Monaco,monospace}.snippet-desc{display:block;font-size:11px;color:var(--text-muted);margin-top:2px}.key-actions,.snippet-actions{display:flex;gap:2px;flex-shrink:0}.key-actions button,.snippet-actions button{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm)}.key-actions button:hover,.snippet-actions button:hover{color:var(--text-primary);background:var(--bg-hover)}.key-actions button.danger:hover,.snippet-actions button.danger:hover{color:var(--danger)}.empty-state{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;color:var(--text-muted);text-align:center}.empty-state p{font-size:13px}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.tab-bar{display:flex;background:var(--bg-secondary);border-bottom:1px solid var(--border);overflow-x:auto;min-height:48px}.tab-bar::-webkit-scrollbar{height:0}.tab{display:flex;align-items:center;gap:6px;padding:0 12px;height:48px;font-size:12px;color:var(--text-muted);background:var(--bg-secondary);border-right:1px solid var(--border);cursor:pointer;white-space:nowrap;transition:all .1s;min-width:0}.tab:hover{color:var(--text-secondary);background:var(--bg-hover)}.tab.active{color:var(--text-primary);background:var(--bg-primary);border-bottom:2px solid var(--accent)}.tab-title{max-width:120px;overflow:hidden;text-overflow:ellipsis}.tab-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;border-radius:2px;display:flex;align-items:center}.tab-close:hover{color:var(--text-primary);background:var(--bg-tertiary)}.terminal-area{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.terminal-wrapper{flex:1;display:flex;min-height:0;overflow:hidden}.terminal-container{flex:1;padding:4px}.terminal-container .xterm{height:100%}.welcome{flex:1;display:flex;align-items:center;justify-content:center}.welcome-content{text-align:center;color:var(--text-muted)}.welcome-content h1{font-size:28px;font-weight:700;color:var(--accent);margin-bottom:8px}.welcome-content p{font-size:14px;margin-bottom:24px}.welcome-shortcuts{display:flex;flex-direction:column;gap:8px;font-size:13px}.welcome-shortcuts kbd{background:var(--bg-tertiary);padding:2px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);font-size:12px;font-family:inherit}.sftp-browser{flex:1;display:flex;flex-direction:column;background:var(--bg-primary);overflow:hidden;min-height:0;height:100%}.sftp-header{border-bottom:1px solid var(--border)}.sftp-title{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;font-size:13px;font-weight:600;color:var(--text-secondary);background:var(--bg-secondary)}.sftp-toolbar{display:flex;align-items:center;gap:4px;padding:6px 12px;background:var(--bg-secondary)}.sftp-toolbar button{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);display:flex;align-items:center}.sftp-toolbar button:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover)}.sftp-toolbar button:disabled{opacity:.3}.sftp-path{flex:1;font-size:12px;font-family:Menlo,Monaco,monospace;color:var(--text-secondary);padding:4px 8px;background:var(--bg-tertiary);border-radius:var(--radius-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sftp-error{padding:8px 12px;font-size:12px;color:var(--danger);background:#ef44441a}.sftp-uploading{padding:8px 12px;font-size:12px;color:var(--accent);background:#6366f11a}.sftp-transferring{padding:8px 12px;font-size:12px;color:var(--warning, #fbbf24);background:#fbbf241a}.sftp-split-container{flex:1;display:flex;overflow:hidden;min-height:0}.sftp-pane{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0;min-height:0;transition:background .15s}.sftp-pane:first-child{border-right:1px solid var(--border)}.sftp-pane.drag-over{background:#6366f10f;outline:2px dashed var(--accent);outline-offset:-2px}.sftp-pane-header{border-bottom:1px solid var(--border)}.sftp-pane-title{padding:6px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg-secondary)}.sftp-files tr[draggable=true]{cursor:grab}.sftp-files tr[draggable=true]:active{cursor:grabbing}.sftp-files{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.sftp-files table{width:100%;border-collapse:collapse;font-size:12px}.sftp-files th{text-align:left;padding:6px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);background:var(--bg-secondary);border-bottom:1px solid var(--border);position:sticky;top:0}.sftp-files td{padding:6px 12px;border-bottom:1px solid var(--border);vertical-align:middle;height:32px}.sftp-files tr:hover td{background:var(--bg-hover)}.sftp-files .dir-row{cursor:pointer}.file-name{display:flex;align-items:center;gap:6px}.file-size,.file-date{color:var(--text-muted);white-space:nowrap}.file-actions{display:flex;align-items:center;gap:2px;justify-content:flex-end}.file-actions button{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px 4px;border-radius:2px}.file-actions button:hover{color:var(--text-primary);background:var(--bg-hover)}.file-actions button.danger:hover{color:var(--danger)}.sftp-loading,.empty-dir{padding:24px;text-align:center;color:var(--text-muted);font-size:13px}.context-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99}.context-menu{position:fixed;z-index:100;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius);padding:4px;min-width:160px;box-shadow:0 8px 24px #0006}.context-menu button{display:block;width:100%;text-align:left;padding:8px 12px;border:none;background:none;color:var(--text-primary);font-size:13px;cursor:pointer;border-radius:var(--radius-sm)}.context-menu button:hover{background:var(--bg-hover)}.context-menu button.danger{color:var(--danger)}.context-menu button.danger:hover{background:#ef44441a}.context-divider{height:1px;background:var(--border);margin:4px 0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);width:440px;max-height:80vh;overflow-y:auto;box-shadow:0 16px 48px #0006}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:16px;font-weight:600}.modal-header button{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm)}.modal-header button:hover{color:var(--text-primary);background:var(--bg-hover)}.modal form{padding:20px;display:flex;flex-direction:column;gap:14px}.modal label{display:flex;flex-direction:column;gap:4px;font-size:13px}.modal label>span{font-size:12px;font-weight:500;color:var(--text-secondary)}.modal input,.modal select,.modal textarea{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);padding:8px 12px;border-radius:var(--radius-sm);font-size:13px;font-family:inherit;width:100%}.modal textarea{resize:vertical;font-family:Menlo,Monaco,monospace;font-size:12px}.modal input:focus,.modal select:focus,.modal textarea:focus{outline:none;border-color:var(--accent)}.form-row{display:flex;gap:12px}.form-row label{flex:1}.file-input-row{display:flex;flex-direction:column;gap:6px}.file-input-row input[type=file]{font-size:11px;padding:4px}.color-picker{font-size:12px;font-weight:500;color:var(--text-secondary)}.color-picker>span{display:block;margin-bottom:8px}.color-options{display:flex;gap:6px}.color-dot{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color .1s,transform .1s}.color-dot:hover{transform:scale(1.15)}.color-dot.active{border-color:var(--text-primary)}.modal-note{font-size:11px;color:var(--text-muted);font-style:italic}.modal-actions{display:flex;gap:8px;justify-content:flex-end;padding-top:8px}.btn-primary{background:var(--accent);color:#fff;border:none;padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;transition:background .15s}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border);padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;cursor:pointer;transition:all .15s}.btn-secondary:hover{color:var(--text-primary);background:var(--bg-hover)}.checkbox-label{flex-direction:row!important;align-items:center!important;gap:8px!important}.checkbox-label input[type=checkbox]{width:auto;accent-color:var(--accent)}.connect-modal{width:380px}.icon-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center}.icon-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.login-page{height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-primary)}.login-card{width:400px;padding:40px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius)}.login-brand{text-align:center;margin-bottom:32px}.login-brand h1{font-size:24px;color:var(--accent)}.login-form{display:flex;flex-direction:column;gap:16px}.login-field{display:flex;flex-direction:column;gap:6px}.login-field label{font-size:13px;color:var(--text-secondary)}.login-field input{padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-sm);font-size:14px}.login-field input:focus{outline:none;border-color:var(--accent)}.login-btn{padding:10px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:500;cursor:pointer}.login-btn:hover{background:var(--accent-hover)}.login-btn:disabled{opacity:.5;cursor:not-allowed}.login-error{color:var(--danger);font-size:13px;text-align:center}.login-toggle{text-align:center;font-size:13px;color:var(--text-muted)}.login-toggle button{background:none;border:none;color:var(--accent);cursor:pointer;font-size:13px}.login-divider{display:flex;align-items:center;gap:12px;color:var(--text-muted);font-size:12px}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border)}.google-signin-container{display:flex;justify-content:center}.admin-layout{display:flex;height:100%}.admin-sidebar{width:240px;background:var(--bg-secondary);border-right:1px solid var(--border);display:flex;flex-direction:column}.admin-sidebar-brand{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.admin-sidebar-brand h2{font-size:15px;font-weight:700;color:var(--accent);letter-spacing:.5px}.admin-sidebar-footer{border-top:1px solid var(--border);padding:8px}.admin-menu{flex:1;padding:8px}.admin-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:none;background:none;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius);font-size:13px;margin-bottom:2px}.admin-menu-item:hover{color:var(--text-primary);background:var(--bg-hover)}.admin-menu-item.active{color:var(--accent);background:var(--bg-tertiary)}.admin-user-info{padding:8px 12px;font-size:11px;color:var(--text-muted);display:flex;flex-direction:column;gap:2px}.admin-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.admin-content-header{padding:13px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.admin-content-header h1{font-size:18px;font-weight:600}.admin-content-body{flex:1;padding:24px;overflow-y:auto}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{padding:20px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius)}.stat-card-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.stat-card-value{font-size:28px;font-weight:700;color:var(--text-primary);margin-top:4px}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{text-align:left;padding:10px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border)}.admin-table td{padding:10px 12px;border-bottom:1px solid var(--border)}.admin-table tr:hover td{background:var(--bg-hover)}.admin-table-actions{display:flex;gap:4px}.admin-table-actions button{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm)}.admin-table-actions button:hover{color:var(--text-primary);background:var(--bg-hover)}.admin-table-actions button.danger:hover{color:var(--danger)}.drag-handle{cursor:grab;color:var(--text-muted);width:30px;text-align:center}.drag-handle:active{cursor:grabbing}.admin-table tr.drag-over-row td{border-top:2px solid var(--accent)}.badge{padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500}.badge-active{background:#10b98126;color:var(--success)}.badge-suspended{background:#ef444426;color:var(--danger)}.badge-trial{background:#f59e0b26;color:var(--warning)}.badge-admin{background:#6366f126;color:var(--accent)}.badge-user{background:var(--bg-tertiary);color:var(--text-muted)}.admin-form{max-width:500px}.admin-form-group{margin-bottom:16px}.admin-form-group label{display:block;font-size:13px;color:var(--text-secondary);margin-bottom:6px}.admin-form-group input,.admin-form-group select{width:100%;padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-sm);font-size:13px}.admin-form-group input:focus,.admin-form-group select:focus{outline:none;border-color:var(--accent)}.admin-form-actions{display:flex;gap:8px;margin-top:20px}.sidebar-user-info{padding:8px 12px;font-size:11px;color:var(--text-muted);border-top:1px solid var(--border);margin-top:4px}.app-loading{height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);color:var(--text-muted);font-size:14px}.logs-panel{display:flex;flex-direction:column;height:100%}.logs-filter-bar{display:flex;align-items:center;gap:8px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.logs-user-filter{padding:6px 10px;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-sm);font-size:12px;min-width:200px}.logs-user-filter:focus{outline:none;border-color:var(--accent)}.logs-refresh-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);font-size:12px;margin-left:auto}.logs-refresh-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.logs-refresh-btn .spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.logs-file-list{flex:1;overflow-y:auto;padding:12px 16px}.logs-file-list::-webkit-scrollbar{width:4px}.logs-file-list::-webkit-scrollbar-track{background:transparent}.logs-file-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.logs-file-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius);cursor:pointer;font-size:13px;color:var(--text-secondary);transition:background .1s}.logs-file-item:hover{background:var(--bg-hover);color:var(--text-primary)}.logs-file-item svg{color:var(--accent);flex-shrink:0}.logs-file-name{flex:1}.logs-file-actions{display:flex;gap:2px;opacity:0;transition:opacity .1s}.logs-file-item:hover .logs-file-actions{opacity:1}.logs-file-actions button{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center}.logs-file-actions button:hover{color:var(--text-primary);background:var(--bg-hover)}.logs-file-actions button.danger:hover{color:var(--danger)}.log-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.log-modal{width:80%;max-width:900px;height:80%;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden}.log-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.log-modal-header h3{font-size:14px;font-weight:600;color:var(--text-primary)}.log-modal-actions{display:flex;align-items:center;gap:4px}.log-modal-body{flex:1;overflow-y:auto;padding:12px 16px;font-family:Menlo,Monaco,Courier New,monospace;font-size:12px;line-height:1.6;background:var(--bg-primary)}.log-modal-body::-webkit-scrollbar{width:6px}.log-modal-body::-webkit-scrollbar-track{background:transparent}.log-modal-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.log-line{white-space:pre-wrap;word-break:break-all;padding:1px 0}.log-info{color:var(--text-secondary)}.log-warn{color:var(--warning)}.log-error{color:var(--danger)}.log-ssh{color:var(--success)}.log-sftp{color:#22b8cf}.log-transfer{color:#cc5de8}.log-cmd{color:#fbbf24}.log-cron{color:#f472b6}.logs-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px}.pf-status-dot{width:8px;height:8px;border-radius:50%;background:var(--text-muted);flex-shrink:0}.pf-status-dot.active{background:var(--success);box-shadow:0 0 6px #10b98180}.pf-status-dot-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.pf-status-dot-wrapper .pf-status-dot{position:absolute;top:-2px;right:-2px}.pf-type-badge{display:inline-block;padding:1px 6px;border-radius:8px;font-size:10px;font-weight:500;text-transform:capitalize;margin-left:6px;vertical-align:middle}.badge-local{background:#6366f126;color:var(--accent)}.badge-remote{background:#f59e0b26;color:var(--warning)}.badge-dynamic{background:#10b98126;color:var(--success)}.pf-toggle-btn{background:none;border:1px solid var(--border);color:var(--text-muted);cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);display:flex;align-items:center;transition:all .15s;flex-shrink:0}.pf-toggle-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.pf-toggle-btn.active{color:var(--danger);border-color:var(--danger)}.pf-toggle-btn.active:hover{background:#ef44441a}.snippet-hosts-section{display:flex;flex-direction:column;gap:8px}.snippet-hosts-label{font-size:12px;font-weight:500;color:var(--text-secondary)}.snippet-hosts-list{max-height:160px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px;background:var(--bg-tertiary)}.snippet-hosts-list::-webkit-scrollbar{width:4px}.snippet-hosts-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.snippet-host-checkbox{display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px!important;padding:4px 0;cursor:pointer}.snippet-host-checkbox input[type=checkbox]{width:auto;accent-color:var(--accent)}.snippet-host-checkbox span{font-size:12px!important;color:var(--text-secondary)!important}.snippet-hosts-empty{font-size:12px;color:var(--text-muted)}.snippet-hosts-display{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.billing-panel{flex:1;display:flex;flex-direction:column;background:var(--bg-primary);overflow:hidden}.billing-header{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.billing-header h2{font-size:15px;font-weight:600;color:var(--text-primary)}.billing-tabs{display:flex;border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.billing-tab{display:flex;align-items:center;gap:6px;padding:10px 20px;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:13px;border-bottom:2px solid transparent;transition:all .15s}.billing-tab:hover{color:var(--text-secondary);background:var(--bg-hover)}.billing-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.billing-body{flex:1;overflow-y:auto;padding:24px}.billing-empty{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text-muted);font-size:13px}.billing-plans-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}.billing-plan-card{position:relative;padding:24px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:16px}.billing-plan-card.current{border-color:var(--accent)}.billing-plan-badge{position:absolute;top:12px;right:12px;padding:2px 10px;background:#6366f126;color:var(--accent);font-size:11px;font-weight:600;border-radius:10px}.billing-plan-name{font-size:18px;font-weight:600;color:var(--text-primary)}.billing-plan-price{display:flex;align-items:baseline;gap:2px}.billing-plan-amount{font-size:32px;font-weight:700;color:var(--text-primary)}.billing-plan-cycle{font-size:13px;color:var(--text-muted)}.billing-plan-features{list-style:none;display:flex;flex-direction:column;gap:8px}.billing-plan-features li{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary)}.billing-plan-features li svg{color:var(--success);flex-shrink:0}.billing-plan-features li.feature-disabled{color:var(--text-muted);text-decoration:line-through}.billing-plan-features li.feature-disabled svg{color:var(--text-muted)}.billing-plan-btn{padding:10px;border:none;background:var(--accent);color:#fff;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s;text-align:center}.billing-plan-btn:hover:not(:disabled){background:var(--accent-hover)}.billing-plan-btn.disabled,.billing-plan-btn:disabled{background:var(--bg-tertiary);color:var(--text-muted);cursor:default}.billing-payment-methods{display:flex;flex-direction:column;gap:12px;max-width:500px}.billing-payment-card{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius)}.billing-payment-card.default{border-color:var(--accent)}.billing-payment-icon{color:var(--text-muted)}.billing-payment-info{display:flex;flex-direction:column;gap:2px}.billing-payment-type{font-size:14px;font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:8px}.billing-default-badge{padding:1px 8px;background:#6366f126;color:var(--accent);font-size:10px;font-weight:600;border-radius:8px}.billing-payment-expiry{font-size:12px;color:var(--text-muted)}.billing-history-table{width:100%;border-collapse:collapse;font-size:13px}.billing-history-table th{text-align:left;padding:10px 12px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);border-bottom:1px solid var(--border)}.billing-history-table td{padding:12px;border-bottom:1px solid var(--border);color:var(--text-secondary)}.billing-history-table tr:hover td{background:var(--bg-hover)}.billing-status{padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500}.billing-status.paid{background:#10b98126;color:var(--success)}.billing-status.free{background:var(--bg-tertiary);color:var(--text-muted)}.profile-panel{flex:1;display:flex;flex-direction:column;background:var(--bg-primary);overflow:hidden}.profile-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--bg-secondary);flex-shrink:0}.profile-header h2{font-size:15px;font-weight:600;color:var(--text-primary)}.profile-body{flex:1;overflow-y:auto;padding:24px}.profile-form{max-width:480px;display:flex;flex-direction:column;gap:24px}.profile-section h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:12px}.profile-section label{display:flex;flex-direction:column;gap:4px;margin-bottom:12px;font-size:13px}.profile-section label>span{font-size:12px;font-weight:500;color:var(--text-secondary)}.profile-section input{padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-sm);font-size:13px}.profile-section input:focus{outline:none;border-color:var(--accent)}.profile-actions{display:flex;gap:8px}.profile-error{padding:10px 14px;background:#ef44441a;color:var(--danger);border-radius:var(--radius-sm);font-size:13px}.profile-success{padding:10px 14px;background:#10b9811a;color:var(--success);border-radius:var(--radius-sm);font-size:13px}.admin-billing-form{max-width:560px}.admin-billing-section{margin-bottom:24px}.admin-billing-section h3{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.admin-billing-desc{font-size:12px;color:var(--text-muted);margin-bottom:20px}.admin-billing-form label{display:flex;flex-direction:column;gap:4px;margin-bottom:14px;font-size:13px}.admin-billing-form label>span{font-size:12px;font-weight:500;color:var(--text-secondary)}.admin-billing-form input{padding:8px 12px;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-sm);font-size:13px;font-family:Menlo,Monaco,monospace;width:100%}.admin-billing-form input:focus{outline:none;border-color:var(--accent)}.admin-billing-actions{margin-top:20px}.confirm-modal{width:380px;padding:0}.confirm-modal-body{display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px 24px 16px;text-align:center}.confirm-icon{color:var(--warning)}.confirm-icon-danger{color:var(--danger)}.confirm-message{font-size:14px;color:var(--text-primary);line-height:1.5}.confirm-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:16px 24px 24px}.btn-danger{background:var(--danger);color:#fff;border:none;padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;cursor:pointer;transition:background .15s}.btn-danger:hover{background:var(--danger-hover)}.upgrade-modal{width:400px;padding:0}.upgrade-modal-body{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 24px 16px;text-align:center}.upgrade-modal-icon{color:var(--accent)}.upgrade-modal-body h3{font-size:16px;font-weight:600;color:var(--text-primary)}.upgrade-modal-message{font-size:13px;color:var(--text-secondary);line-height:1.5}.upgrade-modal-actions{display:flex;gap:8px;justify-content:flex-end;padding:16px 24px 24px}.webhook-url-field{display:flex;gap:8px;align-items:center}.webhook-url-field input{flex:1;font-family:Menlo,Monaco,monospace;font-size:12px;background:var(--bg-primary)}.webhook-url-field button{padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:12px;cursor:pointer;white-space:nowrap}.webhook-url-field button:hover{background:var(--accent-hover)}.webhook-events{margin-top:12px;font-size:12px;color:var(--text-muted);line-height:1.8}.webhook-events code{background:var(--bg-tertiary);padding:1px 6px;border-radius:var(--radius-sm);font-size:11px}.account-info{margin-bottom:32px}.account-info-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px}.account-info-row span:first-child{color:var(--text-muted)}.account-info-row span:last-child{color:var(--text-primary);font-weight:500}.account-danger-zone{border:1px solid var(--danger);border-radius:var(--radius);padding:20px;background:#ef44440d}.account-danger-zone h3{color:var(--danger)!important;display:flex;align-items:center;gap:6px;margin-bottom:12px!important}.account-danger-note{font-size:13px;color:var(--text-secondary);line-height:1.6;margin-bottom:16px}.admin-email-tabs{display:flex;gap:0;margin-bottom:20px;border-bottom:1px solid var(--border)}.admin-email-tab{padding:8px 20px;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:13px;border-bottom:2px solid transparent;transition:all .15s}.admin-email-tab:hover{color:var(--text-secondary)}.admin-email-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.email-templates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.email-template-card{padding:16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius)}.email-template-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.email-template-card-header h4{font-size:14px;font-weight:600;color:var(--text-primary)}.email-template-card-header button{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm)}.email-template-card-header button:hover{color:var(--accent);background:var(--bg-hover)}.email-template-subject{font-size:12px;color:var(--text-muted)}.login-forgot{text-align:right;margin-top:-8px}.login-forgot button{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:12px}.login-forgot button:hover{color:var(--accent)}.login-success{padding:12px;background:#10b9811a;color:var(--success);border-radius:var(--radius-sm);font-size:13px;text-align:center}.download-page{max-width:800px}.download-page-section{margin-bottom:32px}.download-page-section-title{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:16px}.download-page-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.download-page-grid-2{grid-template-columns:repeat(2,1fr)}.download-page-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:24px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s}.download-page-card:hover{border-color:var(--accent)}.download-page-card-icon{font-size:32px}.download-page-card-name{font-size:16px;font-weight:600;color:var(--text-primary)}.download-page-card-version{font-size:11px;color:var(--text-muted)}.download-page-card-btn{display:block;width:100%;padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;text-decoration:none;text-align:center;transition:background .15s;margin-top:4px}.download-page-card-btn:hover{background:var(--accent-hover)}.download-page-card-req{font-size:11px;color:var(--text-muted)}.download-page-web-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:24px;background:var(--bg-secondary);border:1px solid var(--accent);border-radius:var(--radius)}.download-page-web-desc{font-size:13px;color:var(--text-secondary)}.download-page-web-badge{display:inline-block;padding:4px 12px;background:#6366f126;color:var(--accent);border-radius:12px;font-size:11px;font-weight:600}.download-page-req-card{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:24px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius)}.download-page-req-heading{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:10px}.download-page-req-list{list-style:none;display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--text-secondary)}.download-page-req-list li:before{content:"•";margin-right:8px;color:var(--text-muted)}.teams-list{display:flex;flex-direction:column;gap:8px}.team-card{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color .15s}.team-card:hover{border-color:var(--accent)}.team-card-info{flex:1}.team-card-name{font-size:14px;font-weight:600;color:var(--text-primary)}.team-card-meta{font-size:11px;color:var(--text-muted);display:flex;gap:8px;margin-top:2px}.team-role-badge{padding:1px 8px;border-radius:10px;font-size:10px;font-weight:500;text-transform:capitalize}.team-role-owner{background:#6366f126;color:var(--accent)}.team-role-admin{background:#f59e0b26;color:var(--warning)}.team-role-member{background:var(--bg-tertiary);color:var(--text-muted)}.team-detail-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.team-detail-back{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:flex}.team-detail-back:hover{color:var(--text-primary);background:var(--bg-hover)}.team-detail-name{font-size:18px;font-weight:600;color:var(--text-primary)}.team-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:20px}.team-tab{padding:8px 16px;border:none;background:none;color:var(--text-muted);cursor:pointer;font-size:13px;border-bottom:2px solid transparent}.team-tab:hover{color:var(--text-secondary)}.team-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.team-member-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.team-member-info{flex:1}.team-member-name{font-size:13px;font-weight:500;color:var(--text-primary)}.team-member-email{font-size:11px;color:var(--text-muted)}.team-member-actions{display:flex;gap:4px}.team-member-actions button{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm)}.team-member-actions button:hover{color:var(--text-primary);background:var(--bg-hover)}.team-host-badge{padding:1px 6px;border-radius:8px;font-size:10px;font-weight:500;background:#6366f126;color:var(--accent);margin-left:6px}.team-shared-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.team-shared-item-info{flex:1}.team-shared-item-name{font-size:13px;font-weight:500;color:var(--text-primary)}.team-shared-item-sub{font-size:11px;color:var(--text-muted)}@media(max-width:768px){.app{flex-direction:column}.sidebar{position:fixed!important;left:-100%;top:0;bottom:0;width:280px!important;min-width:0!important;z-index:200;transition:left .3s ease}.sidebar.open{left:0}.sidebar-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:199}.sidebar-overlay.open{display:block}.mobile-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.mobile-header-left{display:flex;align-items:center;gap:10px}.hamburger-btn{background:none;border:none;color:var(--text-primary);cursor:pointer;padding:4px;display:flex;flex-direction:column;gap:4px}.hamburger-btn span{display:block;width:20px;height:2px;background:var(--text-primary);border-radius:1px;transition:transform .2s}.mobile-header-title{font-size:14px;font-weight:600;color:var(--text-primary)}.main-content{width:100%;flex:1;min-height:0}.content-panel-header{padding:10px 12px}.content-panel-header h2{font-size:14px}.content-panel-body{padding:12px}.content-panel-add-btn span{display:none}.tab-bar{overflow-x:auto;min-height:40px}.tab{height:40px;padding:0 8px;font-size:11px}.tab-title{max-width:80px}.panel-grid{grid-template-columns:1fr}.panel-list-item{padding:10px 8px}.terminal-wrapper{min-height:0}.terminal-container{padding:2px}.sftp-split-container{flex-direction:column}.sftp-pane:first-child{border-right:none;border-bottom:1px solid var(--border)}.sftp-pane{min-height:200px}.modal{width:100%!important;max-width:100%;max-height:100vh;border-radius:0;margin:0}.modal-overlay{align-items:flex-end}.confirm-modal,.upgrade-modal{width:100%!important;border-radius:12px 12px 0 0}.log-modal{width:100%!important;height:100%!important;border-radius:0}.settings-panel-header{padding:10px 12px}.settings-form{max-width:100%}.settings-form label{flex-direction:column;align-items:flex-start}.settings-form input,.settings-form select{width:100%}.settings-form label>span{min-width:auto}.billing-header{padding:10px 12px}.billing-plans-grid{grid-template-columns:1fr}.billing-history-table{font-size:11px}.billing-history-table th,.billing-history-table td{padding:8px 6px}.team-detail-header{flex-wrap:wrap}.team-tabs{overflow-x:auto}.team-tab{padding:8px 12px;font-size:12px;white-space:nowrap}.download-page-grid,.download-page-grid-2{grid-template-columns:1fr!important}.download-page-req-card{grid-template-columns:1fr}.context-menu{position:fixed;left:50%!important;top:auto!important;bottom:0;transform:translate(-50%);width:100%;max-width:100%;border-radius:12px 12px 0 0;padding:8px 0}.context-menu button{padding:14px 20px;font-size:15px}.settings-flyout{position:fixed!important;left:0!important;bottom:0!important;right:0;top:auto!important;width:100%;border-radius:12px 12px 0 0;min-width:auto}.settings-flyout:before{display:none}.settings-flyout-item{padding:14px 20px;font-size:15px}.login-card{width:100%;max-width:100%;border-radius:0;min-height:100vh;display:flex;flex-direction:column;justify-content:center}.admin-table{display:block;overflow-x:auto}.form-row{flex-direction:column}.pf-type-badge{display:none}.logs-file-item{padding:12px 8px}.snippet-hosts-list{max-height:120px}.account-danger-zone{padding:16px}.sidebar-bottom-btn{padding:10px 12px}.sidebar-user-info{padding:8px 12px}}@media(min-width:769px){.mobile-header{display:none}.sidebar-overlay{display:none!important}}
