/**
 * 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}:root{--bg-primary: #0a0b10;--bg-secondary: rgba(18, 20, 32, .65);--bg-card: rgba(26, 29, 46, .45);--bg-input: rgba(36, 40, 62, .6);--border-color: rgba(255, 255, 255, .08);--border-glow: rgba(0, 245, 212, .15);--accent-cyan: #00f5d4;--accent-purple: #9d4edf;--accent-rose: #ff0054;--accent-amber: #ffbd00;--text-primary: #f1f3f9;--text-secondary: #949eb5;--text-muted: #5f6b86;--font-sans: "Outfit", sans-serif;--font-mono: "JetBrains Mono", monospace;--transition-smooth: all .3s cubic-bezier(.4, 0, .2, 1);--transition-fast: all .15s ease}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);background-image:radial-gradient(at 10% 20%,rgba(157,78,223,.15) 0px,transparent 50%),radial-gradient(at 90% 80%,rgba(0,245,212,.1) 0px,transparent 50%),radial-gradient(at 50% 50%,rgba(10,11,16,1) 0px,transparent 100%);background-attachment:fixed;color:var(--text-primary);min-height:100vh;overflow-x:hidden;line-height:1.5}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#0a0b1080}::-webkit-scrollbar-thumb{background:#9d4edf4d;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent-purple)}.glass{background:var(--bg-card);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:16px;box-shadow:0 8px 32px #0000005e;transition:var(--transition-smooth)}.glass:hover{border-color:#9d4edf40;box-shadow:0 8px 32px #9d4edf0d}.app-container{display:flex;flex-direction:column;min-height:100vh}header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:1px solid var(--border-color);background:#0a0b1080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.logo{display:flex;align-items:center;gap:.75rem;font-size:1.5rem;font-weight:800;background:linear-gradient(135deg,#fff 30%,var(--accent-cyan) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.05em}.logo svg{stroke:var(--accent-cyan);filter:drop-shadow(0 0 8px rgba(0,245,212,.5))}.server-badge{display:flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;color:var(--text-secondary);background:#ffffff0a;padding:.35rem .75rem;border-radius:99px;border:1px solid var(--border-color)}.status-dot{width:8px;height:8px;border-radius:50%;background-color:var(--accent-cyan);box-shadow:0 0 10px var(--accent-cyan);animation:pulse 2s infinite}.tabs{display:flex;gap:.5rem}.tab-btn{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-family:var(--font-sans);font-size:.95rem;font-weight:600;color:var(--text-secondary);background:transparent;border:1px solid transparent;border-radius:10px;cursor:pointer;transition:var(--transition-smooth)}.tab-btn:hover{color:var(--text-primary);background:#ffffff08}.tab-btn.active{color:var(--accent-cyan);background:#00f5d414;border-color:#00f5d433;box-shadow:0 0 15px #00f5d40d}main{flex:1;padding:2rem;max-width:1600px;width:100%;margin:0 auto}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{padding:1.5rem;position:relative;overflow:hidden}.stat-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.stat-title{font-size:.9rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.stat-icon{padding:.5rem;border-radius:8px;background:#ffffff08}.stat-icon.cyan svg{stroke:var(--accent-cyan)}.stat-icon.purple svg{stroke:var(--accent-purple)}.stat-icon.amber svg{stroke:var(--accent-amber)}.stat-icon.rose svg{stroke:var(--accent-rose)}.gauge-container{display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;height:140px}.gauge-text{position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center}.gauge-value{font-size:2.25rem;font-weight:800;color:var(--text-primary);line-height:1}.gauge-unit{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.gauge-meta{margin-top:1rem;font-size:.85rem;color:var(--text-secondary);font-weight:500}.progress-container{margin-top:1.5rem}.progress-info{display:flex;justify-content:space-between;font-size:.85rem;color:var(--text-secondary);margin-bottom:.5rem}.progress-track{width:100%;height:8px;background:#ffffff08;border-radius:4px;overflow:hidden;border:1px solid rgba(255,255,255,.05)}.progress-fill{height:100%;border-radius:4px;transition:width .5s ease}.fill-cyan{background:var(--accent-cyan);box-shadow:0 0 8px var(--accent-cyan)}.fill-purple{background:var(--accent-purple);box-shadow:0 0 8px var(--accent-purple)}.fill-rose{background:var(--accent-rose);box-shadow:0 0 8px var(--accent-rose)}.fill-amber{background:var(--accent-amber);box-shadow:0 0 8px var(--accent-amber)}.details-section{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.details-card{padding:1.5rem;display:flex;flex-direction:column}.details-title{font-size:1.1rem;font-weight:700;margin-bottom:1.2rem;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.details-list{display:flex;flex-direction:column;gap:1rem}.details-item{display:flex;justify-content:space-between;align-items:center;padding-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.03)}.details-item:last-child{border-bottom:none;padding-bottom:0}.details-label{font-size:.9rem;color:var(--text-secondary);display:flex;align-items:center;gap:.5rem}.details-value{font-size:.9rem;font-weight:600;font-family:var(--font-mono)}.services-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1.5rem;flex-wrap:wrap}.search-box{position:relative;flex:1;max-width:400px}.search-input{width:100%;padding:.65rem 1rem .65rem 2.5rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);font-family:var(--font-sans);font-size:.95rem;outline:none;transition:var(--transition-smooth)}.search-input:focus{border-color:var(--accent-cyan);box-shadow:0 0 10px #00f5d426}.search-icon{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.filter-group{display:flex;gap:.5rem}.filter-btn{padding:.5rem 1rem;font-size:.85rem;font-weight:600;color:var(--text-secondary);background:#ffffff08;border:1px solid var(--border-color);border-radius:8px;cursor:pointer;transition:var(--transition-fast)}.filter-btn:hover{background:#ffffff0f}.filter-btn.active{color:var(--bg-primary);background:var(--accent-cyan);border-color:var(--accent-cyan);box-shadow:0 0 12px #00f5d44d}.service-table-container{overflow-x:auto;border-radius:12px;border:1px solid var(--border-color)}.service-table{width:100%;border-collapse:collapse;text-align:left;font-size:.9rem}.service-table th{background:#121420e6;padding:1rem;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border-color);text-transform:uppercase;font-size:.8rem;letter-spacing:.05em}.service-table td{padding:.85rem 1rem;border-bottom:1px solid rgba(255,255,255,.02);vertical-align:middle}.service-table tr:hover td{background:#ffffff03}.service-name{font-family:var(--font-mono);font-weight:600;color:var(--text-primary)}.service-desc{color:var(--text-secondary);max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;border-radius:99px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.badge.active{background:#00f5d414;color:var(--accent-cyan);border:1px solid rgba(0,245,212,.2)}.badge.inactive{background:#5f6b8614;color:var(--text-secondary);border:1px solid rgba(95,107,134,.2)}.badge.failed{background:#ff005414;color:var(--accent-rose);border:1px solid rgba(255,0,84,.2)}.action-buttons{display:flex;gap:.35rem}.btn-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:#ffffff08;border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);outline:none}.btn-icon:hover:not(:disabled){color:var(--text-primary);background:#ffffff14}.btn-icon:disabled{opacity:.3;cursor:not-allowed}.btn-icon.restart:hover:not(:disabled){color:var(--accent-cyan);border-color:#00f5d44d;background:#00f5d40d}.btn-icon.start:hover:not(:disabled){color:var(--accent-amber);border-color:#ffbd004d;background:#ffbd000d}.btn-icon.stop:hover:not(:disabled){color:var(--accent-rose);border-color:#ff00544d;background:#ff00540d}.file-manager{display:flex;flex-direction:column;height:calc(100vh - 180px);min-height:500px}.file-toolbar{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--border-color);background:#1214204d;border-radius:16px 16px 0 0;gap:1rem;flex-wrap:wrap}.breadcrumbs{display:flex;align-items:center;gap:.35rem;overflow-x:auto;white-space:nowrap;font-family:var(--font-sans);font-size:.95rem;flex:1}.breadcrumb-item{color:var(--text-secondary);cursor:pointer;font-weight:500;transition:var(--transition-fast)}.breadcrumb-item:hover{color:var(--accent-cyan)}.breadcrumb-separator{color:var(--text-muted)}.breadcrumb-item.active{color:var(--text-primary);font-weight:700;pointer-events:none}.toolbar-actions{display:flex;gap:.75rem}.btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-family:var(--font-sans);font-size:.85rem;font-weight:600;border-radius:8px;cursor:pointer;transition:var(--transition-fast);border:1px solid transparent}.btn-primary{background:var(--accent-purple);color:#fff;box-shadow:0 4px 12px #9d4edf33}.btn-primary:hover{background:#a963eb;box-shadow:0 4px 16px #9d4edf66}.btn-secondary{background:#ffffff08;border-color:var(--border-color);color:var(--text-secondary)}.btn-secondary:hover{background:#ffffff14;color:var(--text-primary)}.file-list-container{flex:1;overflow-y:auto;position:relative}.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:1rem;padding:1.5rem}.file-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1rem;border-radius:12px;background:#ffffff03;border:1px solid transparent;cursor:pointer;transition:var(--transition-smooth);position:relative;text-align:center}.file-item:hover{background:#ffffff08;border-color:#9d4edf40;transform:translateY(-2px)}.file-icon{margin-bottom:.75rem;display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:10px;background:#ffffff05;transition:var(--transition-smooth)}.file-item:hover .file-icon{background:#9d4edf1a;transform:scale(1.05)}.file-icon.directory{color:#f9c74f}.file-icon.file{color:var(--text-secondary)}.file-item-name{font-size:.8rem;font-weight:500;color:var(--text-primary);max-width:100%;word-break:break-all;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.file-item-meta{font-size:.7rem;color:var(--text-muted);margin-top:.25rem}.file-item-actions{position:absolute;top:.5rem;right:.5rem;opacity:0;transition:var(--transition-fast);display:flex;gap:.2rem}.file-item:hover .file-item-actions{opacity:1}.drop-zone{border:2px dashed rgba(157,78,223,.3);background:#9d4edf05;border-radius:0 0 16px 16px;transition:var(--transition-smooth)}.drop-zone.dragging{border-color:var(--accent-cyan);background:#00f5d40a}.terminal-wrapper{background:#020205;border:1px solid var(--border-color);border-radius:12px;padding:1rem;height:calc(100vh - 200px);min-height:450px;position:relative;overflow:hidden}.terminal-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.05);margin-bottom:1rem}.terminal-title{font-family:var(--font-mono);font-size:.85rem;color:var(--text-secondary);display:flex;align-items:center;gap:.5rem}.terminal-container{height:calc(100% - 35px);width:100%}.xterm{height:100%;padding:5px}.xterm-viewport{background-color:#020205!important}.login-wrapper{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1.5rem}.login-card{width:100%;max-width:420px;padding:2.5rem;text-align:center}.login-logo{display:flex;justify-content:center;margin-bottom:2rem}.login-logo svg{width:48px;height:48px;stroke:var(--accent-cyan);filter:drop-shadow(0 0 10px rgba(0,245,212,.5))}.login-title{font-size:1.75rem;font-weight:800;margin-bottom:.5rem;background:linear-gradient(135deg,#fff 30%,var(--accent-cyan) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.login-subtitle{font-size:.9rem;color:var(--text-secondary);margin-bottom:2rem}.form-group{margin-bottom:1.25rem;text-align:left}.form-label{display:block;font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.form-input{width:100%;padding:.75rem 1rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:10px;color:var(--text-primary);font-family:var(--font-sans);font-size:.95rem;outline:none;transition:var(--transition-smooth)}.form-input:focus{border-color:var(--accent-cyan);box-shadow:0 0 10px #00f5d426}.btn-submit{width:100%;padding:.75rem;font-family:var(--font-sans);font-size:.95rem;font-weight:700;background:linear-gradient(135deg,var(--accent-purple) 0%,#a963eb 100%);border:none;border-radius:10px;color:#fff;cursor:pointer;transition:var(--transition-smooth);box-shadow:0 4px 15px #9d4edf4d;margin-top:1rem}.btn-submit:hover{transform:translateY(-1px);box-shadow:0 6px 20px #9d4edf80}.btn-submit:active{transform:translateY(1px)}.login-error{margin-top:1rem;color:var(--accent-rose);font-size:.85rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:.35rem}@keyframes pulse{0%{transform:scale(.95);box-shadow:0 0 #00f5d4b3}70%{transform:scale(1);box-shadow:0 0 0 8px #00f5d400}to{transform:scale(.95);box-shadow:0 0 #00f5d400}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#07080cd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{width:100%;max-width:400px;padding:2rem;position:relative}.modal-title{font-size:1.25rem;font-weight:700;margin-bottom:1.5rem}.modal-buttons{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}@media (max-width: 768px){body{padding-bottom:80px}header{flex-direction:row!important;justify-content:space-between!important;align-items:center!important;padding:.75rem 1rem!important;gap:.5rem!important}header .tabs{display:none!important}main{padding:1rem}.details-section{grid-template-columns:1fr}}.bottom-nav{display:none}@media (max-width: 768px){.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:65px;background:#0d0e16e6;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-top:1px solid var(--border-color);justify-content:flex-start;align-items:center;z-index:1000;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -8px 24px #0006;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.bottom-nav::-webkit-scrollbar{display:none}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-secondary);font-family:var(--font-sans);font-size:.65rem;font-weight:600;cursor:pointer;transition:var(--transition-fast);gap:.2rem;flex-shrink:0;min-width:68px;height:100%;outline:none}.nav-item:active{transform:scale(.95)}.nav-item.active{color:var(--accent-cyan)}.nav-item.active svg{stroke:var(--accent-cyan);filter:drop-shadow(0 0 5px rgba(0,245,212,.4))}}.terminal-helpers{display:flex;gap:.4rem;margin-bottom:.75rem;overflow-x:auto;white-space:nowrap;padding-bottom:.35rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}.terminal-helpers::-webkit-scrollbar{display:none}.helper-btn{background:#ffffff08;border:1px solid var(--border-color);color:var(--text-secondary);padding:.35rem .65rem;border-radius:6px;font-family:var(--font-mono);font-size:.75rem;font-weight:600;cursor:pointer;transition:var(--transition-fast);outline:none}.helper-btn:hover{color:var(--accent-cyan);background:#00f5d414;border-color:#00f5d433}.helper-btn:active{transform:scale(.95)}@media (max-width: 600px){.login-card{padding:1.75rem 1.5rem}.login-title{font-size:1.5rem}.service-table-container{border:none}.service-table thead{display:none}.service-table,.service-table tbody,.service-table tr,.service-table td{display:block;width:100%}.service-table tr{background:#1a1d2e59;border:1px solid var(--border-color);border-radius:14px;margin-bottom:1.25rem;padding:1.25rem;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:var(--transition-smooth);box-shadow:0 4px 20px #00000026}.service-table tr:hover{border-color:#9d4edf4d;background:#1a1d2e80}.service-table td{padding:.5rem 0!important;border-bottom:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;font-size:.85rem}.service-table td:nth-child(1){font-size:1.05rem;font-weight:700;border-bottom:1px solid rgba(255,255,255,.05);padding-bottom:.75rem!important;margin-bottom:.5rem;display:flex;justify-content:space-between;align-items:center}.service-table td:nth-child(2):before{content:"Статус";font-weight:600;color:var(--text-secondary)}.service-table td:nth-child(3):before{content:"Подстатус";font-weight:600;color:var(--text-secondary)}.service-table td:nth-child(4){flex-direction:column;align-items:flex-start;gap:.25rem}.service-table td:nth-child(4):before{content:"Домены";font-weight:600;color:var(--text-secondary);margin-bottom:.15rem}.service-table td:nth-child(4) div{width:100%;text-align:left}.service-table td:nth-child(5):before{content:"Ресурсы";font-weight:600;color:var(--text-secondary)}.service-table td:nth-child(6){flex-direction:column;align-items:flex-start;gap:.25rem;white-space:normal}.service-table td:nth-child(6):before{content:"Описание";font-weight:600;color:var(--text-secondary);margin-bottom:.15rem}.service-table td:nth-child(6) .service-desc{max-width:100%;white-space:normal;text-align:left}.service-table td:nth-child(7){border-top:1px solid rgba(255,255,255,.05);padding-top:.75rem!important;margin-top:.5rem;display:flex;justify-content:flex-end;width:100%}.file-toolbar{flex-direction:column;align-items:flex-start;gap:.75rem;padding:.85rem}.breadcrumbs{width:100%;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:.25rem}.breadcrumbs::-webkit-scrollbar{display:none}.toolbar-actions{width:100%}.toolbar-actions .btn{flex:1;justify-content:center;font-size:.8rem;padding:.5rem .75rem}.file-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.75rem;padding:1rem}.file-item{padding:.75rem}}
