body{margin:0;min-height:100vh}*{box-sizing:border-box;margin:0;padding:0}:root,[data-theme=ocean]{--primary: #4A9EE8;--primary-dark: #3A8AD4;--success: #4CAF50;--warning: #FFA726;--danger: #EF5350;--secondary: #78909C;--bg: #0a0a0a;--bg-card: #141414;--bg-input: #1e1e1e;--text: #EFEFEF;--text-muted: #9E9E9E;--border: #2a2a2a;--color-pretest: #9b59b6;--color-test: #4A9EE8;--color-prod: #4CAF50}[data-theme=light]{--primary: #2563eb;--primary-dark: #1d4ed8;--success: #16a34a;--warning: #d97706;--danger: #dc2626;--secondary: #64748b;--bg: #f8fafc;--bg-card: #ffffff;--bg-input: #f1f5f9;--text: #1e293b;--text-muted: #64748b;--border: #e2e8f0;--color-pretest: #8b5cf6;--color-test: #2563eb;--color-prod: #16a34a}[data-theme=classic]{--primary: #3b82f6;--primary-dark: #2563eb;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--secondary: #6b7280;--bg: #0f172a;--bg-card: #1e293b;--bg-input: #334155;--text: #f1f5f9;--text-muted: #94a3b8;--border: #334155;--color-pretest: #a855f7;--color-test: #3b82f6;--color-prod: #22c55e}[data-theme=solarized]{--primary: #268bd2;--primary-dark: #1a6091;--success: #859900;--warning: #b58900;--danger: #dc322f;--secondary: #839496;--bg: #002b36;--bg-card: #073642;--bg-input: #094656;--text: #fdf6e3;--text-muted: #93a1a1;--border: #586e75;--color-pretest: #d33682;--color-test: #268bd2;--color-prod: #859900}[data-theme=nord]{--primary: #88c0d0;--primary-dark: #5e81ac;--success: #a3be8c;--warning: #ebcb8b;--danger: #bf616a;--secondary: #81a1c1;--bg: #2e3440;--bg-card: #3b4252;--bg-input: #434c5e;--text: #eceff4;--text-muted: #d8dee9;--border: #4c566a;--color-pretest: #b48ead;--color-test: #88c0d0;--color-prod: #a3be8c}[data-theme=dracula]{--primary: #bd93f9;--primary-dark: #9d6ad6;--success: #50fa7b;--warning: #ffb86c;--danger: #ff5555;--secondary: #6272a4;--bg: #282a36;--bg-card: #343746;--bg-input: #44475a;--text: #f8f8f2;--text-muted: #bfbfbf;--color-pretest: #bd93f9;--color-test: #8be9fd;--color-prod: #50fa7b;--border: #44475a}[data-theme=monokai]{--primary: #66d9ef;--primary-dark: #4eb8cc;--success: #a6e22e;--warning: #fd971f;--danger: #f92672;--secondary: #ae81ff;--bg: #272822;--bg-card: #32332d;--bg-input: #414339;--text: #f8f8f2;--text-muted: #a6a699;--border: #49483e;--color-pretest: #ae81ff;--color-test: #66d9ef;--color-prod: #a6e22e}[data-theme=github]{--primary: #58a6ff;--primary-dark: #388bfd;--success: #3fb950;--warning: #d29922;--danger: #f85149;--secondary: #8b949e;--bg: #0d1117;--bg-card: #161b22;--bg-input: #21262d;--text: #f0f6fc;--text-muted: #8b949e;--border: #30363d;--color-pretest: #bc8cff;--color-test: #58a6ff;--color-prod: #3fb950}[data-theme=gruvbox]{--primary: #83a598;--primary-dark: #689d6a;--success: #b8bb26;--warning: #fabd2f;--danger: #fb4934;--secondary: #d3869b;--bg: #282828;--bg-card: #3c3836;--bg-input: #504945;--text: #ebdbb2;--text-muted: #a89984;--border: #504945;--color-pretest: #d3869b;--color-test: #83a598;--color-prod: #b8bb26}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;transition:background-color .3s ease,color .3s ease}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent;border-radius:5px}*::-webkit-scrollbar-thumb{background:var(--border);border-radius:5px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--text-muted);border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:active{background:var(--primary);border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-corner{background:transparent}#root{min-height:100vh;width:100%}h1{font-size:2rem;font-weight:700;line-height:1.2;margin-bottom:1rem}h2{font-size:1.5rem;font-weight:600;line-height:1.3;margin-bottom:.875rem}h3{font-size:1.25rem;font-weight:600;line-height:1.4;margin-bottom:.75rem}h4{font-size:1.125rem;font-weight:600;line-height:1.4;margin-bottom:.625rem}h5{font-size:1rem;font-weight:600;line-height:1.5;margin-bottom:.5rem}.section-spacing{margin-top:2.5rem}section+section{margin-top:2rem}.btn-primary,.btn-secondary{padding:.625rem 1.25rem;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;border:none;transition:all .2s;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;line-height:1.25}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px);box-shadow:0 2px 4px #0003}.btn-primary:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--bg-input);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border);transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.btn-secondary:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn-cancel-compact{padding:.25rem .75rem;background:#ef4444;color:#fff;border:none;border-radius:.25rem;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s;margin-left:auto}.btn-cancel-compact:hover:not(:disabled){background:#dc2626}.btn-cancel-compact:disabled{opacity:.6;cursor:not-allowed}.form-group{margin-bottom:1.25rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.75rem 1rem;border:1px solid var(--border);border-radius:.5rem;background:var(--bg-input);color:var(--text);font-size:1rem}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.form-group.error input,.form-group.error textarea,.form-group.error select{border-color:var(--danger);background:#ef44440d}.form-group.error input:focus,.form-group.error textarea:focus,.form-group.error select:focus{border-color:var(--danger);box-shadow:0 0 0 3px #ef44441a}.form-group.success input,.form-group.success textarea,.form-group.success select{border-color:var(--success);background:#22c55e0d}.form-group.success input:focus,.form-group.success textarea:focus,.form-group.success select:focus{border-color:var(--success);box-shadow:0 0 0 3px #22c55e1a}.error-text{display:block;margin-top:.375rem;color:var(--danger);font-size:.875rem;font-weight:500}.success-text{display:block;margin-top:.375rem;color:var(--success);font-size:.875rem;font-weight:500}.form-group small{display:block;margin-top:.25rem;color:var(--text-muted);font-size:.85rem}.checkbox-group label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-group input[type=checkbox]{width:auto}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.login-card{background:var(--bg-card);padding:2.5rem;border-radius:1rem;width:100%;max-width:400px;box-shadow:0 4px 6px -1px #0000004d}.login-card h1{font-size:1.75rem;margin-bottom:.5rem;text-align:center}.login-card .subtitle{color:var(--text-muted);text-align:center;margin-bottom:2rem}.login-card .btn-primary{width:100%;margin-top:.5rem}.register-link{text-align:center;margin-top:1.5rem;color:var(--text-muted)}.register-link a{color:var(--primary);text-decoration:none}.register-link a:hover{text-decoration:underline}.dashboard{height:100vh;display:flex;flex-direction:column;overflow:hidden}.dashboard-header{display:flex;justify-content:space-between;align-items:center;padding:.625rem 1.5rem;background:var(--bg-card);border-bottom:1px solid var(--border)}.header-left{display:flex;align-items:center;gap:1rem}.header-left h1{font-size:1.125rem;line-height:1;margin:0}.header-logo{text-decoration:none;color:inherit}.header-logo:hover{opacity:.8}.org-name{color:var(--text-muted);padding-left:1rem;border-left:1px solid var(--border)}.header-right{display:flex;align-items:center;gap:.625rem}.user-email{color:var(--text-muted);font-size:.875rem}.header-right .btn-secondary.active{background:var(--primary);color:#fff;border-color:var(--primary)}.dashboard-main{padding:0;max-width:90%;width:100%;margin:0 auto;flex:1;overflow:hidden;min-height:0;display:flex;flex-direction:column}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-header h2{font-size:1.5rem}.page-header-left{display:flex;align-items:center;gap:1.5rem}.toggle-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem;color:var(--text-muted)}.toggle-label input[type=checkbox]{width:1rem;height:1rem;cursor:pointer}.toggle-label:hover{color:var(--text)}.page-title{margin-bottom:1rem}.apps-toolbar{display:flex;align-items:center;gap:1rem;padding:2rem 2rem 1rem;background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10;flex-shrink:0}.apps-toolbar .toggle-label{flex-shrink:0;display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.875rem;color:var(--text-muted)}.apps-toolbar .toggle-label input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.apps-toolbar .toggle-track{width:36px;height:20px;background:var(--border);border-radius:10px;position:relative;transition:background-color .2s ease}.apps-toolbar .toggle-track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--text-muted);border-radius:50%;transition:transform .2s ease,background-color .2s ease}.apps-toolbar .toggle-label input[type=checkbox]:checked+.toggle-track{background:var(--primary)}.apps-toolbar .toggle-label input[type=checkbox]:checked+.toggle-track:after{transform:translate(16px);background:#fff}.search-input{flex:1;min-width:200px;padding:.5rem .75rem;font-size:.875rem;background:var(--bg-input);border:1px solid var(--border);border-radius:.375rem;color:var(--text);transition:border-color .15s ease}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{outline:none;border-color:var(--primary)}.sort-select{padding:.5rem .75rem;font-size:.875rem;background:var(--bg-input);border:1px solid var(--border);border-radius:.375rem;color:var(--text);cursor:pointer;transition:border-color .15s ease}.sort-select:hover{border-color:var(--primary)}.sort-select:focus{outline:none;border-color:var(--primary)}.dashboard-content-scroll{flex:1;overflow-y:auto;padding:2rem;min-height:0}.apps-list{display:flex;flex-direction:column}.app-card{background:var(--bg-card);padding:1.5rem;border-radius:.75rem;border:1px solid var(--border);text-decoration:none;color:inherit;transition:all .2s,background-color .3s ease,border-color .3s ease;box-shadow:0 1px 3px #0000001a}.app-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 4px 6px #00000026}.app-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.app-card-header h3{font-size:1.125rem;font-weight:600}.app-name{color:var(--text-muted);font-size:.9rem;font-family:monospace;margin-bottom:.5rem}.app-description{color:var(--text-muted);font-size:.9rem;margin-bottom:1rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em;line-height:1.35}.app-card-footer{display:flex;gap:1.5rem;margin-bottom:.75rem}.status-row{display:flex;align-items:center;gap:.5rem}.status-label{color:var(--text-muted);font-size:.85rem}.app-domain{color:var(--primary);font-size:.85rem;text-decoration:none}.app-domain:hover{text-decoration:underline}.app-owner{font-size:.75rem;color:var(--text-secondary);margin-top:.5rem;opacity:.7}.badge{padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500}.badge-success{background:#22c55e33;color:var(--success)}.badge-warning{background:#f59e0b33;color:var(--warning)}.badge-danger{background:#ef444433;color:var(--danger)}.badge-primary{background:#3b82f633;color:#60a5fa}.badge-secondary{background:#6b728033;color:var(--secondary)}.framework-badge{background:var(--bg);color:var(--text-muted);padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem}.status-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500;text-decoration:none;position:relative;transition:all .15s ease}.status-btn .link-icon{width:12px;height:12px;opacity:.7;transition:opacity .15s ease}.status-btn:hover .link-icon{opacity:1}.status-btn-success{background:#22c55e33;color:var(--success)}.status-btn-success:hover{background:#22c55e59}.status-btn-warning{background:#f59e0b33;color:var(--warning)}.status-btn-danger{background:#ef444433;color:var(--danger)}.status-btn-secondary{background:#6b728033;color:var(--secondary)}.status-btn.disabled{cursor:default}.empty-state{text-align:center;padding:4rem 2rem;background:var(--bg-card);border-radius:.75rem;border:2px dashed var(--border);display:flex;flex-direction:column;align-items:center;gap:.75rem}.empty-state-icon{font-size:3rem;opacity:.5;margin-bottom:.5rem}.empty-state h3{margin-bottom:.25rem;font-size:1.25rem;color:var(--text)}.empty-state p{color:var(--text-muted);margin-bottom:1rem;max-width:400px}.empty-state-actions{display:flex;gap:.75rem;margin-top:.5rem;flex-wrap:wrap;justify-content:center}.spinner{display:inline-block;width:20px;height:20px;border:3px solid rgba(59,130,246,.2);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;margin-right:.5rem}.spinner-large{width:40px;height:40px;border-width:4px}.loading,.loading-screen{display:flex;align-items:center;justify-content:center;color:var(--text-muted);padding:2rem;flex-direction:column;gap:1rem}.loading-screen{min-height:100vh}.loading:before{content:"";display:inline-block;width:40px;height:40px;border:4px solid rgba(59,130,246,.2);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.error-message{background:#ef44441a;border:1px solid var(--danger);color:var(--danger);padding:1rem;border-radius:.5rem;margin-bottom:1rem}.page-container{min-height:100vh}.page-header-bar{padding:1rem 2rem;background:var(--bg-card);border-bottom:1px solid var(--border)}.back-link{color:var(--text-muted);text-decoration:none;font-size:.9rem;display:block;margin-bottom:.5rem}.back-link:hover{color:var(--text)}.page-content{padding:2rem;max-width:600px;width:100%;margin:0 auto;flex:1;overflow-y:auto;min-height:0}.form-card{background:var(--bg-card);padding:2rem;border-radius:.75rem;border:1px solid var(--border);box-shadow:0 1px 3px #0000001a;transition:background-color .3s ease,border-color .3s ease}.form-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--border)}.tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:1.5rem}.tab{background:none;border:none;color:var(--text-muted);padding:.75rem 1.5rem;cursor:pointer;font-size:.95rem;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .15s ease}.tab:hover{color:var(--text)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.status-card{background:var(--bg);border-radius:.5rem;padding:1.25rem}.status-card h3{font-size:1rem;font-weight:600;color:var(--text);margin-bottom:1rem}.dashboard-content{padding:2rem;max-width:1200px;width:100%;margin:0 auto;flex:1;overflow-y:auto;min-height:0}.settings-section{background:var(--bg-card);padding:2rem;border-radius:.75rem;border:1px solid var(--border);margin-bottom:2rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section-header h2{font-size:1.25rem}.section-description{color:var(--text-muted);margin-bottom:1.5rem}.modal-overlay{position:fixed;inset:0;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;overflow-y:auto}.modal{background:var(--bg-card);padding:2rem;border-radius:.75rem;border:1px solid var(--border);width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-content{background:var(--bg-card);border-radius:.75rem;border:1px solid var(--border);width:100%;max-width:600px;max-height:85vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000004d;display:flex;flex-direction:column}.modal-content .modal-header{flex-shrink:0}.modal-body{padding:1.5rem 2rem}.modal-content form{padding:1.5rem 2rem;overflow-y:auto}.modal-content h3{font-size:1.25rem;margin:0}.modal h3{margin-bottom:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:1.5rem}.warning-text{color:var(--warning);background:#f59e0b1a;padding:1rem;border-radius:.5rem;margin-bottom:1rem}.token-display{display:flex;gap:.5rem;margin-bottom:1.5rem}.token-display code{flex:1;background:var(--bg);padding:.75rem 1rem;border-radius:.5rem;font-size:.9rem;word-break:break-all}.logs-modal{max-width:900px;width:90%;max-height:85vh;display:flex;flex-direction:column}.logs-modal .modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:1rem;border-bottom:1px solid var(--border);margin-bottom:0}.logs-modal-title{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.logs-modal-title h2{margin:0;font-size:1.25rem}.logs-modal-version code{font-size:.85rem;color:var(--text-secondary)}.logs-modal-body{flex:1;overflow:hidden;display:flex;flex-direction:column;padding:0!important}.logs-modal-meta{display:flex;gap:1.5rem;padding:.75rem 0;font-size:.85rem;color:var(--text-secondary);border-bottom:1px solid var(--border)}.logs-modal-output{flex:1;overflow-y:auto;background:var(--bg);border-radius:.5rem;margin-top:1rem;max-height:400px}.logs-modal-output pre{margin:0;padding:1rem;font-family:monospace;font-size:.85rem;line-height:1.6}.logs-modal-error{margin-top:1rem;padding:.75rem 1rem;background:#ef44441a;border:1px solid var(--danger);border-radius:.5rem;color:var(--danger);font-size:.9rem}.cli-install-section,.cli-usage-section,.cli-commands-section{margin-bottom:1.5rem}.cli-install-section h3,.cli-usage-section h3,.cli-commands-section h3{font-size:1rem;margin-bottom:.75rem;color:var(--text)}.cli-install-section p{color:var(--text-muted);margin-bottom:.75rem;font-size:.9rem}.cli-steps{padding-left:1.25rem;color:var(--text-muted);font-size:.9rem}.cli-steps li{margin-bottom:.5rem;line-height:1.5}.cli-steps code{background:var(--bg);padding:.2rem .5rem;border-radius:.25rem;font-size:.85rem}.cli-command-list{display:flex;flex-direction:column;gap:.5rem}.cli-command{display:flex;align-items:center;gap:1rem;padding:.5rem 0;border-bottom:1px solid var(--border)}.cli-command:last-child{border-bottom:none}.cli-command code{background:var(--bg);padding:.35rem .75rem;border-radius:.25rem;font-size:.85rem;min-width:180px}.cli-command span{color:var(--text-muted);font-size:.9rem}.tokens-list{margin-top:1.5rem}.table-responsive{position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:.5rem;margin-bottom:1rem}.table-responsive:after{content:"";position:absolute;top:0;right:0;bottom:0;width:40px;background:linear-gradient(to right,transparent,rgba(0,0,0,.15));pointer-events:none;opacity:0;transition:opacity .3s}.table-responsive.has-scroll:after{opacity:1}.table-responsive::-webkit-scrollbar{height:8px}.table-responsive::-webkit-scrollbar-track{background:var(--bg);border-radius:4px}.table-responsive::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.table-responsive::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.tokens-table{width:100%;border-collapse:collapse;min-width:600px}.tokens-table th,.tokens-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border)}.tokens-table th{color:var(--text-muted);font-weight:500;font-size:.85rem}.tokens-table code{background:var(--bg);padding:.25rem .5rem;border-radius:.25rem;font-size:.85rem}.tokens-table tr.revoked{opacity:.5}.status-badge{padding:.25rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:500}.status-badge.active{background:#22c55e33;color:var(--success)}.status-badge.revoked{background:#6b728033;color:var(--secondary)}.btn-danger{background:var(--danger);color:#fff;padding:.625rem 1.25rem;border:none;border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s}.btn-danger:hover:not(:disabled){background:#dc2626;transform:translateY(-1px);box-shadow:0 2px 4px #dc26264d}.btn-danger:focus-visible{outline:2px solid var(--danger);outline-offset:2px}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.btn-sm{padding:.5rem 1rem;font-size:.8125rem}.collaborators-section{background:var(--bg-card);border-radius:.5rem;padding:1.25rem;margin-bottom:1.5rem}.collaborators-section .section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.collaborators-section h3{font-size:1rem;font-weight:600;color:var(--text);margin:0}.collaborators-section .section-description{color:var(--text-muted);font-size:.875rem;margin-bottom:1rem}.add-collaborator-form{background:var(--bg);border:1px solid var(--border);border-radius:.5rem;padding:1rem;margin-bottom:1rem}.add-collaborator-form .form-grid{display:grid;grid-template-columns:2fr 1fr;gap:1rem;margin-bottom:1rem}.add-collaborator-form .form-actions{display:flex;gap:.5rem}.role-select{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:.375rem;padding:.375rem .5rem;font-size:.875rem;cursor:pointer}.role-select:hover{border-color:var(--primary)}.role-select:disabled{opacity:.5;cursor:not-allowed}.loading-state{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.75rem;text-align:center;color:var(--text-muted);padding:2rem;font-size:.875rem}.loading-state:before{content:"";display:inline-block;width:32px;height:32px;border:3px solid rgba(59,130,246,.2);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.empty-state{text-align:center;color:var(--text-muted);padding:2rem;font-size:.875rem}.checkbox-label{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:1rem;height:1rem}.instructions{color:var(--text-muted)}.instructions pre{background:var(--bg);padding:1rem;border-radius:.5rem;margin:.75rem 0;overflow-x:auto}.instructions code{font-size:.9rem}.git-info{background:var(--bg-card);padding:1.5rem;border-radius:.75rem;border:1px solid var(--border);margin-top:1.5rem}.git-info h3{margin-bottom:1rem;font-size:1rem}.git-url-container{display:flex;gap:.5rem;margin-bottom:1rem}.git-url{flex:1;background:var(--bg);padding:.75rem 1rem;border-radius:.5rem;font-size:.85rem;word-break:break-all}.git-instructions pre{background:var(--bg);padding:.75rem 1rem;border-radius:.5rem;margin:.5rem 0;overflow-x:auto}.git-instructions code{font-size:.85rem}.git-instructions p{margin-top:1rem;color:var(--text-muted);font-size:.9rem}.git-note{background:#3b82f61a;border:1px solid var(--primary);padding:.75rem 1rem;border-radius:.5rem;font-size:.85rem;line-height:1.5}.theme-options{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-top:.5rem}.theme-option{display:flex;align-items:center;justify-content:center;cursor:pointer;padding:.875rem 1rem;border:2px solid var(--border);border-radius:.5rem;transition:all .15s ease;background:var(--bg-input)}.theme-option span{font-weight:500;font-size:.9rem}.theme-option:hover{border-color:var(--primary);background:var(--bg-card)}.theme-option input[type=radio]{display:none}.theme-option:has(input:checked){border-color:var(--primary);background:var(--primary)}.theme-option:has(input:checked) span{color:#fff}.settings-modal{width:700px;max-width:90vw;padding:0}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:1px solid var(--border)}.modal-header h2{font-size:1.25rem;margin:0}.modal-close{background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;padding:0;line-height:1}.modal-close:hover{color:var(--text)}.delete-modal{max-width:550px}.delete-modal .modal-body{padding:1.5rem 2rem}.delete-warning{background:#ef44441a;border:1px solid var(--danger);border-radius:.5rem;padding:1rem;margin-bottom:1.5rem;color:var(--text)}.delete-details{background:var(--bg-secondary);border-radius:.5rem;padding:1rem;margin-bottom:1.5rem}.delete-details h4{font-size:.9rem;color:var(--text-muted);margin-bottom:.75rem}.delete-details ul{margin:0;padding-left:1.25rem;font-size:.85rem;color:var(--text-muted)}.delete-details li{margin-bottom:.35rem}.server-card{transition:transform .2s ease,box-shadow .2s ease}.server-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.stat-box{padding:1rem;background:#ffffff05;border-radius:8px;border:1px solid var(--border)}.badge-sm{font-size:.75rem;padding:.25rem .5rem}.alert-item{transition:background .2s ease}.alert-item:hover{background:#ef444414!important}.delete-confirm-input{margin-top:1rem}.delete-confirm-input label{display:block;margin-bottom:.5rem;font-size:.9rem}.delete-confirm-input input{width:100%;padding:.75rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:.375rem;color:var(--text);font-size:.95rem}.delete-confirm-input input:focus{outline:none;border-color:var(--danger)}.modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 2rem;border-top:1px solid var(--border)}.modal-footer .btn-danger:disabled{opacity:.5;cursor:not-allowed}.settings-tabs{display:flex;border-bottom:1px solid var(--border);padding:0 2rem}.settings-tab{background:none;border:none;color:var(--text-muted);padding:1rem 1.5rem;cursor:pointer;font-size:.95rem;border-bottom:2px solid transparent;margin-bottom:-1px}.settings-tab:hover{color:var(--text)}.settings-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.settings-content{padding:2rem}.settings-panel{height:400px;overflow-y:auto}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.success-message{background:#22c55e1a;border:1px solid var(--success);color:var(--success);padding:1rem;border-radius:.5rem;margin-bottom:1rem}.token-created-banner{background:var(--bg);border:1px solid var(--warning);border-radius:.5rem;padding:1rem;margin-bottom:1.5rem}.create-token-form{background:var(--bg);padding:1rem;border-radius:.5rem;margin-bottom:1.5rem}.tokens-list-compact{display:flex;flex-direction:column;gap:.5rem}.token-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg);border-radius:.5rem}.token-item.revoked{opacity:.5}.token-info{display:flex;align-items:center;gap:1rem;flex:1;min-width:0}.token-name{font-weight:500;white-space:nowrap}.token-prefix{font-size:.8rem;background:var(--bg-card);padding:.25rem .5rem;border-radius:.25rem}.token-date{color:var(--text-muted);font-size:.8rem;white-space:nowrap}.token-actions{flex-shrink:0}.btn-xs{padding:.25rem .5rem;font-size:.75rem}.empty-state-small{text-align:center;padding:2rem;color:var(--text-muted)}.url-preview{display:flex;align-items:center;gap:0}.url-preview input{border-top-right-radius:0;border-bottom-right-radius:0;flex:1}.url-suffix{background:var(--bg);padding:.75rem 1rem;border:1px solid var(--border);border-left:none;border-radius:0 .5rem .5rem 0;color:var(--text-muted);font-size:.95rem;white-space:nowrap}.url-suffix-select{padding:.75rem 3rem .75rem 1rem;border:2px solid #3a4556;border-left:2px solid #2a3544;border-radius:0 .5rem .5rem 0;color:#66b3ff;font-size:.95rem;font-weight:600;white-space:nowrap;cursor:pointer;appearance:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%2366b3ff' d='M10 13L5 8h10z'/%3E%3C/svg%3E") no-repeat right .75rem center,linear-gradient(135deg,#1a1f2e,#242938);min-width:180px;transition:all .15s ease;box-shadow:inset 0 1px 2px #0000004d}.url-suffix-select:hover{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Cpath fill='%2366b3ff' d='M10 13L5 8h10z'/%3E%3C/svg%3E") no-repeat right .75rem center,linear-gradient(135deg,#242938,#2a3544);border-color:#66b3ff;color:#8ec9ff}.url-suffix-select:focus{outline:none;border-color:#66b3ff;box-shadow:0 0 0 3px #66b3ff33,inset 0 1px 2px #0000004d}.form-group label .optional{color:var(--text-muted);font-weight:400;font-size:.85rem}.toggle-group{display:flex;align-items:flex-start;gap:1rem;padding:1rem;background:var(--bg-input);border-radius:.5rem;border:1px solid var(--border)}.toggle-switch{position:relative;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{display:block;width:48px;height:26px;background:var(--border);border-radius:13px;cursor:pointer;transition:background .2s ease}.toggle-slider:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:var(--text);border-radius:50%;transition:transform .2s ease}.toggle-switch input:checked+.toggle-slider{background:var(--primary)}.toggle-switch input:checked+.toggle-slider:after{transform:translate(22px)}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 0 2px var(--primary-dark)}.toggle-content{flex:1}.toggle-label{font-weight:500;color:var(--text);margin-bottom:.25rem}.toggle-description{font-size:.85rem;color:var(--text-muted);line-height:1.4}.app-detail-layout{display:grid;grid-template-columns:minmax(220px,260px) 1fr minmax(220px,240px);flex:1;min-height:0;background:var(--bg);overflow:hidden}.app-sidebar{background:var(--bg-card);border-right:1px solid var(--border);padding:1.5rem 1rem;display:flex;flex-direction:column;height:100%;overflow-y:auto}.sidebar-header{margin-bottom:2rem}.sidebar-header .back-link{font-size:.85rem;color:var(--text-muted);text-decoration:none;display:block;margin-bottom:1rem}.sidebar-header .back-link:hover{color:var(--primary)}.app-title{font-size:1.1rem;font-weight:600;color:var(--text)}.sidebar-nav{display:flex;flex-direction:column;gap:.25rem}.nav-item{background:none;border:none;padding:.75rem 1rem;text-align:left;color:var(--text-muted);border-radius:.5rem;cursor:pointer;font-size:.9rem;transition:all .15s ease}.nav-item:hover{background:var(--bg-input);color:var(--text)}.nav-item.active{background:var(--primary);color:#fff}.sidebar-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:auto;padding-top:1rem}.btn-full{width:100%}.app-main{padding:1.5rem;height:100%;overflow-y:auto}.latest-version-banner{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:.5rem;margin-bottom:1.5rem}.latest-version-label{color:var(--text-secondary);font-size:.875rem}.latest-version-value{font-weight:600;color:var(--primary);font-family:SF Mono,Monaco,monospace}.latest-version-date{color:var(--text-secondary);font-size:.8125rem}.env-tabs-container{margin-bottom:1.5rem}.env-tabs{display:flex;gap:.5rem;border-bottom:2px solid var(--border);margin-bottom:0}.env-tab{background:transparent;border:none;padding:.75rem 1.5rem;font-size:.95rem;font-weight:500;color:var(--text-secondary);cursor:pointer;border-bottom:3px solid transparent;transition:all .2s ease;position:relative;bottom:-2px}.env-tab:hover{color:var(--text);background:#ffffff0d}.env-tab.active{color:var(--text);border-bottom-color:var(--primary)}.env-tab.pretest.active{border-bottom-color:var(--color-pretest, #9b59b6)}.env-tab.test.active{border-bottom-color:var(--color-test)}.env-tab.prod.active{border-bottom-color:var(--color-prod)}.env-tab-status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.5rem;transition:background-color .2s ease}.env-tab-status-dot.running{background-color:var(--success);box-shadow:0 0 4px var(--success)}.env-tab-status-dot.stopped{background-color:var(--danger);box-shadow:0 0 4px var(--danger)}.env-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:1.5rem}.env-card{background:var(--bg-card);border-radius:.75rem;padding:1.25rem;border:2px solid var(--border);overflow:hidden;min-width:0;box-shadow:0 2px 4px #00000014;transition:background-color .3s ease,border-color .3s ease}.env-card-single{background:var(--bg-card);border-radius:.75rem;padding:1.25rem;border:2px solid var(--border);overflow:hidden;box-shadow:0 2px 4px #00000014;transition:background-color .3s ease,border-color .3s ease;margin-bottom:1.5rem;width:100%}.env-card.online,.env-card-single.online{border-color:var(--success)}.env-card.offline,.env-card-single.offline{border-color:var(--danger)}.env-header{margin-bottom:1rem}.env-header h3{font-size:1rem;font-weight:600;color:var(--text);margin-bottom:.25rem}.env-header-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.env-header-row h3{margin-bottom:0}.platform-warning-inline{display:flex;align-items:center;gap:.5rem;background:#ffa72626;border:1px solid var(--warning);border-radius:.375rem;padding:.25rem .75rem;font-size:.75rem}.platform-warning-inline strong{color:var(--warning);white-space:nowrap}.platform-warning-inline span{color:var(--text-muted);white-space:nowrap}.env-domain{font-size:.85rem;color:var(--primary);text-decoration:none}.env-domain:hover{text-decoration:underline}.external-icon{font-size:.75rem}.env-stats{margin-bottom:1rem}.env-stat{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--border)}.env-stat:last-child{border-bottom:none}.stat-label{color:var(--text);font-size:.9rem}.stat-value{color:var(--text-muted);font-size:.9rem}.stat-value.version-value{font-family:SF Mono,Monaco,monospace;color:var(--primary);font-weight:500}.stat-value.version-latest{color:var(--success)}.stat-value.version-outdated{color:var(--warning)}.env-status{font-weight:600;font-size:.85rem;text-transform:uppercase}.env-status.online{color:var(--success)}.env-status.offline{color:var(--danger)}.env-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.env-actions button{font-size:.85rem;padding:.5rem 1rem}.info-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.info-card{background:var(--bg-card);border-radius:.75rem;padding:1.25rem;border:1px solid var(--border);box-shadow:0 1px 3px #0000001a;transition:background-color .3s ease,border-color .3s ease}.info-card h3{font-size:1rem;font-weight:600;color:var(--text);margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.info-rows{display:flex;flex-direction:column;gap:.75rem}.info-row{display:flex;align-items:flex-start;gap:1rem}.info-label{flex-shrink:0;width:120px;color:var(--text-muted);font-size:.9rem}.info-value{flex:1;color:var(--text);font-size:.9rem}.info-value.tag{background:var(--bg-input);padding:.25rem .5rem;border-radius:.25rem;display:inline-block}.info-value.code{background:var(--bg-input);padding:.5rem .75rem;border-radius:.25rem;font-family:monospace;font-size:.8rem;word-break:break-all}.code-with-copy{display:flex;align-items:center;gap:.5rem;flex:1}.code-with-copy .info-value.code{flex:1}.copy-btn{background:var(--bg-input);border:1px solid var(--border);border-radius:.25rem;padding:.4rem .6rem;cursor:pointer;color:var(--text-muted);font-size:.85rem;transition:all .15s ease;flex-shrink:0}.copy-btn:hover{background:var(--bg-card);color:var(--text);border-color:var(--primary)}.copy-btn:active{transform:scale(.95)}.info-value.code.copyable{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex:1}.copy-btn-inline{background:transparent;border:none;cursor:pointer;color:var(--text-muted);font-size:.9rem;padding:.25rem;margin-left:auto;opacity:.6;transition:all .15s ease;flex-shrink:0}.copy-btn-inline:hover{color:var(--primary);opacity:1}.copy-btn-inline:active{transform:scale(.9)}.info-value.editable{background:var(--bg-input);padding:.5rem .75rem;border-radius:.25rem;flex:1}.info-hint{color:var(--text-muted);font-size:.85rem;margin-top:.5rem}.activity-sidebar{background:var(--bg-card);border-left:1px solid var(--border);padding:1.5rem 1rem}.activity-sidebar h3{font-size:.95rem;font-weight:600;color:var(--text);margin-bottom:1rem}.activity-list{display:flex;flex-direction:column;gap:1rem}.activity-item{display:flex;gap:.75rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.activity-icon{font-size:.5rem;margin-top:.25rem}.activity-icon.deploy{color:var(--primary)}.activity-icon.push{color:var(--warning)}.activity-content{flex:1;min-width:0}.activity-content strong{display:block;font-size:.85rem;color:var(--text)}.activity-content p{font-size:.8rem;color:var(--text-muted);margin-top:.25rem}.activity-time{font-size:.75rem;color:var(--text-muted)}.btn-warning{background:var(--warning);color:#000;border:none;padding:.625rem 1.25rem;border-radius:.375rem;cursor:pointer;font-weight:500;transition:all .2s}.btn-warning:hover:not(:disabled){opacity:.9;transform:translateY(-1px);box-shadow:0 2px 4px #ffa7264d}.btn-warning:focus-visible{outline:2px solid var(--warning);outline-offset:2px}.btn-warning:disabled{opacity:.6;cursor:not-allowed}.app-detail-layout.no-activity{grid-template-columns:180px 1fr}.tab-content{background:var(--bg-card);border-radius:.75rem;padding:1.5rem;border:1px solid var(--border)}.tab-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.tab-header h2{font-size:1.25rem;font-weight:600;color:var(--text)}.versions-table{overflow-x:auto;-webkit-overflow-scrolling:touch;position:relative}.versions-table table{width:100%;border-collapse:collapse;min-width:700px}.versions-table::-webkit-scrollbar{height:8px}.versions-table::-webkit-scrollbar-track{background:var(--bg);border-radius:4px}.versions-table::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.versions-table th,.versions-table td{padding:.875rem 1rem;text-align:left;border-bottom:1px solid var(--border)}.versions-table th{color:var(--text-muted);font-weight:500;font-size:.85rem;text-transform:uppercase;letter-spacing:.025em}.versions-table tbody tr:hover{background:var(--bg-input)}.version-name{font-family:monospace;font-weight:600;color:var(--primary)}.version-badge{background:var(--success);color:#000;padding:.2rem .5rem;border-radius:.25rem;font-size:.7rem;font-weight:600;margin-left:.5rem;text-transform:uppercase}.version-actions{display:flex;gap:.5rem}.btn-sm{padding:.375rem .75rem;font-size:.8rem;border-radius:.375rem;cursor:pointer;border:none;font-weight:500;transition:all .15s ease}.btn-sm.btn-primary{background:var(--primary);color:#fff}.btn-sm.btn-primary:hover{background:var(--primary-dark)}.btn-sm.btn-success{background:var(--success);color:#000}.btn-sm.btn-success:hover{opacity:.9}.logs-container{display:grid;grid-template-columns:300px 1fr;gap:1.5rem}.activity-feed{background:var(--bg);border-radius:.5rem;padding:1rem}.activity-feed h3{font-size:.95rem;font-weight:600;color:var(--text);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.activity-list-full{display:flex;flex-direction:column;gap:.75rem}.activity-item-full{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:var(--bg-card);border-radius:.5rem}.activity-dot{width:8px;height:8px;border-radius:50%;margin-top:.35rem;flex-shrink:0}.activity-dot.deploy{background:var(--primary)}.activity-dot.push{background:var(--warning)}.activity-details{flex:1;min-width:0}.activity-details strong{font-size:.8rem;color:var(--text-muted);text-transform:uppercase}.activity-details p{font-size:.9rem;color:var(--text);margin-top:.25rem}.activity-item-full .activity-time{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.log-viewer{background:var(--bg);border-radius:.5rem;padding:1rem;display:flex;flex-direction:column}.log-viewer h3{font-size:.95rem;font-weight:600;color:var(--text);margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.log-output{flex:1;background:var(--bg-card);border-radius:.5rem;padding:1rem;overflow-x:auto}.log-output pre{font-family:monospace;font-size:.85rem;line-height:1.6;color:var(--text-muted);margin:0;white-space:pre-wrap;word-break:break-word}.logs-tab-content{background:var(--bg-card);border-radius:.75rem;padding:1.5rem;border:1px solid var(--border)}.logs-tab-content .tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.logs-tab-content .tab-header h2{font-size:1.25rem;font-weight:600;color:var(--text);margin:0}.deployments-full-table{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;position:relative}.deployments-full-table table{width:100%;border-collapse:collapse;min-width:800px}.deployments-full-table::-webkit-scrollbar{height:8px}.deployments-full-table::-webkit-scrollbar-track{background:var(--bg);border-radius:4px}.deployments-full-table::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.deployments-full-table th,.deployments-full-table td{padding:.875rem 1rem;text-align:left;border-bottom:1px solid var(--border)}.deployments-full-table th{color:var(--text-muted);font-weight:500;font-size:.8rem;text-transform:uppercase;letter-spacing:.025em;background:var(--bg)}.deployments-full-table tbody tr{transition:background .15s ease}.deployments-full-table tbody tr:hover{background:var(--bg-input)}.deployments-full-table tbody tr.selected{background:#4a9ee81a}.pagination{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem 0 .5rem;margin-top:1rem;border-top:1px solid var(--border)}.pagination-btn{background:var(--bg-input);border:1px solid var(--border);color:var(--text);padding:.5rem .75rem;border-radius:.375rem;font-size:.875rem;cursor:pointer;transition:all .15s ease;min-width:36px}.pagination-btn:hover:not(:disabled){background:var(--border);border-color:var(--text-muted)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-info{color:var(--text);font-size:.875rem;padding:0 .75rem;display:flex;align-items:center;gap:.5rem}.pagination-total{color:var(--text-muted);font-size:.8rem}.env-badge{display:inline-block;padding:.25rem .625rem;border-radius:.375rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.env-badge.pretest{background:#9b59b626;color:var(--color-pretest)}.env-badge.test{background:#4a9ee826;color:var(--primary)}.env-badge.production,.status-badge.success,.status-badge.completed{background:#4caf5026;color:var(--success)}.status-badge.failed{background:#ef444426;color:var(--danger)}.status-badge.inprogress,.status-badge.running{background:#ffa72626;color:var(--warning)}.status-badge.pending{background:#78909c26;color:var(--secondary)}.version-code{background:var(--bg);padding:.25rem .5rem;border-radius:.25rem;font-family:monospace;font-size:.8rem;color:var(--text-muted)}.btn-view-logs{background:var(--bg-input);color:var(--text);border:1px solid var(--border);padding:.375rem .75rem;border-radius:.375rem;font-size:.8rem;cursor:pointer;transition:all .15s ease}.btn-view-logs:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.deployment-logs-panel{margin-top:1.5rem;background:var(--bg);border-radius:.5rem;border:1px solid var(--border);overflow:hidden}.logs-panel-header{display:flex;justify-content:space-between;align-items:center;padding:.875rem 1rem;background:var(--bg-input);border-bottom:1px solid var(--border)}.logs-panel-title{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.logs-panel-version{font-family:monospace;font-size:.85rem;color:var(--text)}.logs-panel-time{font-size:.8rem;color:var(--text-muted)}.btn-close-logs{background:none;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;padding:0;line-height:1;transition:color .15s ease}.btn-close-logs:hover{color:var(--text)}.logs-panel-output{padding:1rem;max-height:400px;overflow-y:auto}.logs-panel-output pre{margin:0;font-family:monospace;font-size:.85rem;line-height:1.6}.log-line{display:flex;gap:.75rem;padding:.25rem 0}.log-line:hover{background:var(--bg-input);margin:0 -.5rem;padding:.25rem .5rem;border-radius:.25rem}.log-time{color:var(--text-muted);font-size:.8rem;flex-shrink:0;min-width:75px}.log-level{font-weight:600;font-size:.75rem;text-transform:uppercase;flex-shrink:0;min-width:50px}.log-level.info{color:var(--primary)}.log-level.warning,.log-level.warn{color:var(--warning)}.log-level.error{color:var(--danger)}.log-level.debug{color:var(--secondary)}.log-message{color:var(--text);word-break:break-word}.log-line.error{background:#ef44440d;margin:0 -.5rem;padding:.25rem .5rem;border-radius:.25rem}.log-line.error .log-message{color:var(--danger)}.log-line.warning,.log-line.warn{background:#ffa7260d;margin:0 -.5rem;padding:.25rem .5rem;border-radius:.25rem}.logs-panel-error{background:#ef44441a;border-top:1px solid var(--danger);padding:1rem;color:var(--danger);font-size:.9rem}.logs-panel-error strong{font-weight:600}.settings-sections{display:flex;flex-direction:column;gap:1.5rem}.settings-sections .settings-section{background:var(--bg);border-radius:.5rem;padding:1.25rem;border:none;margin-bottom:0}.settings-sections .settings-section h3{font-size:1rem;font-weight:600;color:var(--text);margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.settings-form{display:flex;flex-direction:column;gap:1rem}.settings-form .form-group{margin-bottom:0}.settings-form .form-group label{font-size:.9rem;font-weight:500;margin-bottom:.375rem}.settings-form input,.settings-form textarea{background:var(--bg-card);border:1px solid var(--border);padding:.625rem .875rem;font-size:.9rem}.settings-compact{position:relative}.auto-save-indicator{position:absolute;top:.75rem;right:.75rem;font-size:.75rem;color:var(--text-muted);background:var(--bg-input);padding:.25rem .5rem;border-radius:.25rem}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.settings-grid .form-group{margin-bottom:0}.settings-grid .form-group.full-width{grid-column:1 / -1}.settings-grid .form-group label{font-size:.8rem;font-weight:500;margin-bottom:.25rem;color:var(--text-muted)}.settings-grid input,.settings-grid textarea{padding:.5rem .625rem;font-size:.85rem}.toggle-group.compact{padding:.75rem 0 .5rem .75rem;margin-top:.5rem}.toggle-group.compact .toggle-description{font-size:.75rem}.danger-zone-compact{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.danger-zone-compact span{font-size:.85rem;color:var(--text-muted)}.danger-zone-compact .btn-danger{padding:.375rem .75rem;font-size:.8rem}.settings-actions{padding:1rem 0;display:flex;justify-content:flex-end}.settings-form small{display:block;margin-top:.25rem;font-size:.8rem;color:var(--text-muted)}.danger-zone{border:1px solid var(--danger)!important;background:#ef44440d!important}.danger-zone h3{color:var(--danger)!important}.danger-actions{display:flex;flex-direction:column;gap:1rem}.danger-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--bg-card);border-radius:.5rem;gap:1rem}.danger-item strong{display:block;font-size:.95rem;color:var(--text);margin-bottom:.25rem}.danger-item p{font-size:.85rem;color:var(--text-muted);margin:0}@media(max-width:1200px){.app-detail-layout,.app-detail-layout.no-activity{grid-template-columns:minmax(160px,180px) 1fr}.activity-sidebar{display:none}.logs-container{grid-template-columns:1fr}}@media(max-width:900px){.app-detail-layout{grid-template-columns:1fr}.app-sidebar{flex-direction:row;flex-wrap:wrap;align-items:center;gap:1rem;padding:1rem;border-right:none;border-bottom:1px solid var(--border)}.sidebar-header{margin-bottom:0;flex-shrink:0}.sidebar-nav{flex-direction:row;flex:1;flex-wrap:wrap}.sidebar-nav .nav-item{padding:.625rem 1rem;min-width:fit-content}.sidebar-actions{flex-direction:row;flex-wrap:wrap;margin-top:0;padding-top:0;gap:.5rem}.env-cards,.info-cards{grid-template-columns:1fr}}.env-card.platform-self{border-color:var(--warning)!important}.platform-warning{background:#ffa7261a;border:1px solid var(--warning);border-radius:.5rem;padding:.75rem 1rem;margin-bottom:1rem}.platform-warning strong{display:block;color:var(--warning);font-size:.9rem;margin-bottom:.25rem}.platform-warning p{color:var(--text-muted);font-size:.8rem;margin:0}.platform-action-modal{max-width:500px}.platform-action-warning{background:#ffa7261a;border:1px solid var(--warning);border-radius:.5rem;padding:1rem}.platform-action-warning p{color:var(--text);margin-bottom:.75rem}.platform-action-warning p:last-of-type{margin-bottom:.5rem;color:var(--text-muted)}.platform-action-warning ul{margin:0;padding-left:1.25rem;color:var(--text-muted);font-size:.9rem}.platform-action-warning li{margin-bottom:.35rem}.btn-sm.btn-warning{background:var(--warning);color:#000}.btn-sm.btn-warning:hover{opacity:.9}.help-layout{display:grid;grid-template-columns:240px 1fr;flex:1;min-height:0;background:var(--bg);overflow:hidden}.help-sidebar{background:var(--bg-card);border-right:1px solid var(--border);padding:1.5rem 1rem;height:100%;overflow-y:auto}.help-sidebar-header{margin-bottom:1.5rem}.help-sidebar-header .back-link{font-size:.85rem;color:var(--text-muted);text-decoration:none;display:block;margin-bottom:.75rem}.help-sidebar-header .back-link:hover{color:var(--primary)}.help-sidebar-header h2{font-size:1.1rem;font-weight:600;color:var(--text)}.help-nav{display:flex;flex-direction:column;gap:.25rem}.help-nav-item{background:none;border:none;padding:.5rem .75rem;text-align:left;color:var(--text-muted);border-radius:.375rem;cursor:pointer;font-size:.85rem;transition:all .15s ease}.help-nav-item:hover{background:var(--bg-input);color:var(--text)}.help-main{padding:2rem 3rem;overflow-y:auto;height:100%}.help-section{background:var(--bg-card);border-radius:.75rem;padding:2rem;border:1px solid var(--border);margin-bottom:1.5rem;scroll-margin-top:1rem}.help-section h2{font-size:1.25rem;font-weight:600;color:var(--text);margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.help-section h3{font-size:1rem;font-weight:600;color:var(--text);margin-top:1.5rem;margin-bottom:.75rem}.help-section p{color:var(--text-muted);line-height:1.6;margin-bottom:.75rem}.help-section ol,.help-section ul{color:var(--text-muted);padding-left:1.5rem;margin-bottom:.75rem}.help-section li{margin-bottom:.5rem;line-height:1.5}.help-section code{background:var(--bg);padding:.15rem .4rem;border-radius:.25rem;font-size:.85rem;color:var(--primary)}.code-block{background:var(--bg);border-radius:.5rem;padding:1rem;margin:.75rem 0;overflow-x:auto}.code-block code,.code-block pre{font-family:monospace;font-size:.85rem;color:var(--text);background:none;padding:0;margin:0;white-space:pre-wrap;word-break:break-word}.code-block-wrapper{position:relative;margin:.75rem 0}.code-block-wrapper .code-block{margin:0;padding-right:4rem}.code-block-wrapper .copy-btn{position:absolute;top:.5rem;right:.5rem;padding:.25rem .5rem;font-size:.75rem;background:var(--bg-secondary);color:var(--text-muted);border:1px solid var(--border);border-radius:.25rem;cursor:pointer;transition:all .15s ease}.code-block-wrapper .copy-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.help-table{width:100%;border-collapse:collapse;margin:.75rem 0}.help-table th,.help-table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border)}.help-table th{color:var(--text-muted);font-weight:500;font-size:.85rem;text-transform:uppercase;letter-spacing:.025em}.help-table td{color:var(--text);font-size:.9rem}.help-note{background:#3b82f61a;border:1px solid var(--primary);border-radius:.5rem;padding:1rem;margin:.75rem 0;font-size:.9rem;color:var(--text)}.help-note strong{color:var(--primary)}.command-list{display:flex;flex-direction:column;gap:.5rem;margin:.75rem 0}.command-row{display:flex;align-items:center;gap:.75rem}.command-step{color:var(--text-muted);font-size:.85rem;min-width:1.5rem}.command-comment{color:var(--text-muted);font-size:.85rem;font-style:italic}.copyable-code{display:inline-flex;align-items:center;gap:.75rem;background:var(--bg-input);padding:.5rem .75rem;border-radius:.375rem;font-family:monospace;font-size:.85rem;color:var(--text)}.copyable-code .copy-btn-inline{margin-left:auto}.help-table .copyable-code{display:inline-flex;padding:.375rem .5rem}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;margin-top:1rem}.theme-card{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:var(--bg-input);border:2px solid var(--border);border-radius:.5rem;cursor:pointer;transition:all .15s ease}.theme-card:hover{border-color:var(--primary);background:var(--bg-card)}.theme-card.active{border-color:var(--primary);background:#4a9ee81a}.theme-card input[type=radio]{display:none}.theme-card-label{font-size:.9rem;color:var(--text)}.theme-card.active .theme-card-label{color:var(--primary);font-weight:500}.profile-info{display:flex;flex-direction:column;gap:1rem;max-width:400px}.profile-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg-input);border-radius:.5rem;border:1px solid var(--border)}.profile-label{color:var(--text-muted);font-size:.875rem}.profile-value{color:var(--text);font-weight:500}.password-form{max-width:400px}.password-form .form-group{margin-bottom:1rem}.password-form .btn-primary{margin-top:.5rem}@media(max-width:900px){.help-layout{grid-template-columns:1fr}.help-sidebar{position:relative;height:auto;border-right:none;border-bottom:1px solid var(--border)}.help-nav{flex-direction:row;flex-wrap:wrap;gap:.5rem}.help-main{padding:1.5rem}}.mobile-menu-toggle{display:none;background:none;border:none;padding:.5rem;cursor:pointer;color:var(--text)}.mobile-menu-toggle svg{width:24px;height:24px}.mobile-nav-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:999;opacity:0;pointer-events:none;transition:opacity .2s ease}.mobile-nav-overlay.open{opacity:1;pointer-events:auto}.mobile-nav-drawer{display:none;position:fixed;top:0;right:0;bottom:0;width:280px;max-width:85vw;background:var(--bg-card);z-index:1000;transform:translate(100%);transition:transform .3s ease;flex-direction:column;box-shadow:-2px 0 8px #0003}.mobile-nav-drawer.open{transform:translate(0)}.mobile-nav-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--border)}.mobile-nav-header h3{margin:0;font-size:1rem}.mobile-nav-close{background:none;border:none;padding:.5rem;cursor:pointer;color:var(--text-muted)}.mobile-nav-close:hover{color:var(--text)}.mobile-nav-content{flex:1;overflow-y:auto;padding:1rem}.mobile-nav-content .nav-item{display:block;padding:.875rem 1rem;margin-bottom:.25rem;border-radius:.375rem;color:var(--text);text-decoration:none;font-size:.95rem}.mobile-nav-content .nav-item:hover{background:var(--bg-hover)}.mobile-nav-content .nav-item.active{background:var(--primary);color:#fff}.mobile-nav-footer{padding:1rem;border-top:1px solid var(--border)}.mobile-nav-footer .user-email{display:block;margin-bottom:.75rem;font-size:.85rem}@media(max-width:768px){.mobile-menu-toggle{display:flex!important;align-items:center;justify-content:center}.mobile-nav-overlay,.mobile-nav-drawer{display:flex}.header-right>a,.header-right>button:not(.mobile-menu-toggle),.header-right .btn-secondary,.header-right .user-email,.org-name{display:none!important}.dashboard-main{padding:0;max-width:100%}.apps-toolbar,.dashboard-content-scroll{padding:1rem}.page-header{flex-direction:column;align-items:flex-start;gap:1rem}.page-header h2{font-size:1.25rem}.page-header-actions{width:100%;display:flex;gap:.5rem}.page-header-actions .btn{flex:1}.app-row-description{display:none}.env-actions{flex-wrap:wrap}.env-actions button,.env-actions .btn{flex:1;min-height:44px}.btn-primary,.btn-secondary,.btn-danger,.btn-warning{min-height:44px;padding:.75rem 1.25rem}.btn-sm{min-height:36px;padding:.5rem 1rem}.nav-item{min-height:44px;padding:.75rem 1rem}.tokens-table .btn-sm,.versions-table .btn-sm,.deployments-full-table .btn-sm{min-height:40px}.status-btn{min-height:44px;padding:.75rem 1rem}.app-detail-layout,.app-detail-layout.no-activity{display:flex!important;flex-direction:column!important;grid-template-columns:unset!important}.app-sidebar{flex-direction:column!important;flex-wrap:nowrap;border-right:none!important;border-bottom:1px solid var(--border);padding:1rem!important;height:auto!important;overflow:visible!important;gap:1rem}.sidebar-header{margin-bottom:0!important;width:100%}.sidebar-header .app-title{font-size:1.125rem;font-weight:600}.sidebar-header .back-link{display:none}.sidebar-nav{flex-direction:row!important;gap:.5rem;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.sidebar-nav::-webkit-scrollbar{display:none}.sidebar-nav .nav-item{padding:.625rem 1rem;font-size:.875rem;white-space:nowrap;flex-shrink:0;min-height:44px}.sidebar-actions,.activity-sidebar{display:none!important}.app-main{flex:1;overflow-y:auto}.modal-content{margin:1rem;max-height:calc(100vh - 2rem)}.modal-body{padding:1rem}.form-row{flex-direction:column}.form-row .form-group{width:100%}}@media(max-width:640px){.form-group input,.form-group textarea,.form-group select{min-height:48px;padding:.875rem 1rem;font-size:1rem}.form-group{margin-bottom:1.5rem}input[type=checkbox],input[type=radio]{min-width:20px;min-height:20px}.dashboard-header{padding:.5rem .75rem}.header-left h1{font-size:1rem}.dashboard-main{padding:0;max-width:100%}.apps-toolbar,.dashboard-content-scroll{padding:.75rem}.app-row{flex-wrap:wrap;gap:.375rem;padding:.5rem .75rem}.app-row-name{width:auto;flex:1;min-width:0}.app-row-env{width:auto;flex-shrink:1}.app-row-meta{width:100%;flex-direction:row;justify-content:flex-end;gap:.5rem}.env-cards,.info-cards{grid-template-columns:1fr!important;gap:.75rem}.env-card,.env-card-single{padding:.875rem}.env-tab{padding:.625rem 1rem;font-size:.875rem}.env-header-row{flex-direction:column;align-items:flex-start;gap:.5rem}.env-actions{flex-direction:column;width:100%}.env-actions button,.env-actions .btn{width:100%;justify-content:center}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -1rem;padding:0 1rem}.data-table{min-width:600px}.deployments-table{min-width:500px}.logs-container{max-height:300px}.version-card{padding:1rem}.version-header{flex-direction:column;align-items:flex-start;gap:.75rem}.version-actions{width:100%;display:flex;gap:.5rem}.version-actions .btn{flex:1}.settings-section{padding:1rem}.settings-header,.section-header{flex-direction:column;align-items:flex-start!important;gap:.75rem}.section-header h2{font-size:1.125rem}.tokens-list{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -1rem;padding:0 1rem}.tokens-table{min-width:400px}.tokens-table th,.tokens-table td{padding:.625rem .5rem;font-size:.85rem;white-space:nowrap}.users-header{flex-direction:column;gap:1rem}.users-header h2{font-size:1.25rem}.status-card{padding:1rem}}@media(max-width:480px){.dashboard-header{padding:.5rem .75rem}.header-left{gap:.5rem}.header-left h1{font-size:.9rem}.dashboard-main{padding:0;max-width:100%}.apps-toolbar,.dashboard-content-scroll{padding:.5rem}.page-header{margin-bottom:.75rem}.page-header h2{font-size:1.125rem}.btn{min-height:44px;padding:.625rem .875rem;font-size:.875rem}.btn-sm{min-height:36px;padding:.5rem .75rem;font-size:.8rem}.form-group input,.form-group select,.form-group textarea{min-height:44px;padding:.625rem .75rem;font-size:1rem}.app-card{padding:.875rem}.app-card-header{flex-direction:column;align-items:flex-start;gap:.5rem}.app-card h3{font-size:1rem}.app-card-meta{font-size:.8rem}.app-card-actions{width:100%;flex-direction:column}.app-card-actions .btn{width:100%}.env-card,.env-card-single{padding:.875rem}.env-header{margin-bottom:.75rem}.env-header h3{font-size:.95rem}.env-stats{margin-bottom:.75rem}.env-stat{padding:.375rem 0}.stat-label,.stat-value{font-size:.85rem}.env-actions{flex-direction:column;gap:.5rem;margin-top:.75rem}.env-actions button,.env-actions .btn{width:100%;padding:.625rem .75rem}.modal-content{margin:.5rem;max-height:calc(100vh - 1rem);border-radius:.75rem}.modal-header{padding:1rem}.modal-header h2{font-size:1.125rem}.modal-body{padding:1rem}.modal-footer{padding:1rem;flex-direction:column;gap:.5rem}.modal-footer .btn{width:100%}.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -.5rem;padding:0 .5rem;gap:.25rem}.tab{padding:.625rem .75rem;font-size:.8rem;white-space:nowrap}.settings-section{padding:.875rem}.section-header{flex-direction:column;align-items:flex-start!important;gap:.5rem;margin-bottom:.75rem}.section-header h2{font-size:1rem}.section-description{font-size:.85rem;margin-bottom:1rem}.tokens-list{margin:0;padding:0;overflow:visible}.tokens-table{display:block;min-width:unset}.tokens-table thead{display:none}.tokens-table tbody{display:flex;flex-direction:column;gap:.75rem}.tokens-table tr{display:flex;flex-direction:column;background:var(--bg);border-radius:.5rem;padding:.875rem;border:1px solid var(--border)}.tokens-table td{display:flex;justify-content:space-between;align-items:center;padding:.375rem 0;border-bottom:none;font-size:.875rem}.tokens-table td:first-child{font-weight:500;font-size:.9rem;word-break:break-all;display:block;margin-bottom:.5rem}.tokens-table td:nth-child(2){justify-content:flex-start}.tokens-table td:last-child{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border)}.tokens-table td:last-child:empty{display:none}.tokens-table .btn-sm{width:100%;justify-content:center}.status-badge,.badge{padding:.25rem .5rem;font-size:.75rem}.log-entry{padding:.5rem;font-size:.8rem}.log-timestamp{font-size:.7rem}.login-container{padding:1rem}.login-card{padding:1.5rem}.login-card h1{font-size:1.25rem}.empty-state{padding:2rem 1rem}.empty-state h3{font-size:1rem}.empty-state p{font-size:.85rem}.help-main{padding:1rem}.help-section h2{font-size:1.125rem}.help-section h3{font-size:1rem}pre,code{font-size:.8rem}.code-block{padding:.75rem;margin:0 -.75rem;border-radius:0}}@media(max-width:768px){::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}}@media(max-width:768px){body{overflow-x:hidden}}@supports (padding: env(safe-area-inset-bottom)){.dashboard-header,.apps-toolbar{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}.dashboard-content-scroll{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right));padding-bottom:max(1rem,env(safe-area-inset-bottom))}.mobile-nav-drawer{padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom)}}.toast-container{position:fixed;top:1rem;right:1rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem;max-width:400px;width:calc(100% - 2rem)}.toast{display:flex;align-items:center;gap:.75rem;padding:1rem;border-radius:.5rem;background:var(--bg-card);border-left:4px solid;box-shadow:0 4px 12px #00000026;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-success{border-left-color:#22c55e}.toast-error{border-left-color:#ef4444}.toast-warning{border-left-color:#f59e0b}.toast-info{border-left-color:#3b82f6}.toast-icon{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;font-weight:700;font-size:1rem;flex-shrink:0}.toast-success .toast-icon{background:#22c55e;color:#fff}.toast-error .toast-icon{background:#ef4444;color:#fff}.toast-warning .toast-icon{background:#f59e0b;color:#fff}.toast-info .toast-icon{background:#3b82f6;color:#fff}.toast-message{flex:1;color:var(--text);font-size:.875rem;line-height:1.5}.toast-close{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:1.25rem;line-height:1;padding:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;border-radius:.25rem;transition:background .2s,color .2s;flex-shrink:0}.toast-close:hover{background:#0000001a;color:var(--text)}@media(max-width:640px){.toast-container{top:.5rem;right:.5rem;max-width:calc(100% - 1rem)}.toast{padding:.875rem}.toast-message{font-size:.8125rem}}.breadcrumb{margin-bottom:.75rem}.help-sidebar-header .breadcrumb,.sidebar-header .breadcrumb{margin-bottom:.5rem}.breadcrumb-list{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;list-style:none;margin:0;padding:0}.breadcrumb-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.breadcrumb-link{color:var(--text-muted);text-decoration:none;transition:color .2s}.breadcrumb-link:hover{color:var(--primary);text-decoration:underline}.breadcrumb-separator{color:var(--text-muted);-webkit-user-select:none;user-select:none}.breadcrumb-current{color:var(--text);font-weight:500}@media(max-width:640px){.breadcrumb{margin-bottom:.75rem}.breadcrumb-item{font-size:.8125rem}}.log-line{display:flex;gap:.75rem;border-left:3px solid transparent;padding:.25rem 0 .25rem .5rem;transition:background .2s}.log-line:hover{background:#0000000d}.log-line.error{border-left-color:#ef4444;background:#ef44440d}.log-line.warning{border-left-color:#f59e0b;background:#f59e0b0d}.log-line.info{border-left-color:#3b82f6;background:#3b82f60d}.log-line.debug{border-left-color:#6b7280;background:#6b72800d}.log-time{color:var(--text-muted);font-size:.75rem;min-width:70px;flex-shrink:0}.log-level{font-weight:600;font-size:.75rem;text-transform:uppercase;min-width:60px;flex-shrink:0}.log-level.error{color:#ef4444}.log-level.warning{color:#f59e0b}.log-level.info{color:#3b82f6}.log-level.debug{color:#6b7280}.log-message{color:var(--text);font-size:.875rem;line-height:1.5;word-break:break-word}.log-filters{display:flex;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}.log-filter-btn{padding:.375rem .75rem;border-radius:.375rem;border:1px solid var(--border);background:var(--bg-card);color:var(--text-muted);font-size:.8125rem;font-weight:500;cursor:pointer;transition:all .2s}.log-filter-btn:hover{border-color:var(--primary);color:var(--text)}.log-filter-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.log-filter-btn.error.active{background:#ef4444;border-color:#ef4444}.log-filter-btn.warning.active{background:#f59e0b;border-color:#f59e0b}.log-filter-btn.info.active{background:#3b82f6;border-color:#3b82f6}.log-filter-btn.debug.active{background:#6b7280;border-color:#6b7280}@media(max-width:640px){.log-line{flex-direction:column;gap:.25rem}.log-time,.log-level{min-width:unset}}.app-title-row{display:flex;align-items:center;gap:.5rem;flex:1}.app-title-row h3{flex:1;margin:0}.favorite-btn{background:transparent;border:none;font-size:1.25rem;cursor:pointer;color:var(--text-muted);padding:.25rem;border-radius:.25rem;transition:all .2s;line-height:1;flex-shrink:0}.favorite-btn:hover{background:#0000000d;transform:scale(1.1)}.favorite-btn.active{color:#f59e0b}.btn-filter{padding:.625rem 1.25rem;border-radius:.5rem;border:1px solid var(--border);background:var(--bg-card);color:var(--text);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-filter:hover{border-color:#f59e0b;background:#f59e0b1a;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.btn-filter.active{background:#f59e0b;color:#fff;border-color:#f59e0b}.btn-filter:focus-visible{outline:2px solid #f59e0b;outline-offset:2px}@media(max-width:768px){.apps-toolbar{flex-wrap:wrap}.btn-filter{order:2;flex:1 1 auto}}.commit-diff-modal{max-width:900px;width:90%;max-height:90vh;display:flex;flex-direction:column}.commit-diff-modal .modal-body{flex:1;overflow-y:auto;padding:1.5rem}.commit-diff-modal .commit-message{color:var(--text-muted);font-size:.9rem;margin-top:.5rem;font-style:italic}.compare-selector{margin-bottom:1.5rem;padding:1rem;background:var(--bg-input);border-radius:8px}.compare-selector label{display:flex;align-items:center;gap:.75rem;font-weight:500;color:var(--text)}.compare-selector select{flex:1;padding:.5rem;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:4px;font-size:.9rem;cursor:pointer}.compare-selector select:hover{border-color:var(--primary)}.diff-summary{display:flex;gap:1.5rem;padding:1rem;background:var(--bg-input);border-radius:8px;margin-bottom:1.5rem;flex-wrap:wrap}.diff-stat{display:flex;flex-direction:column;gap:.25rem}.diff-stat .stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.diff-stat .stat-value{font-size:1.25rem;font-weight:600;color:var(--text)}.diff-stat.additions .stat-value{color:#22c55e}.diff-stat.deletions .stat-value{color:#ef4444}.files-list h3{font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--text)}.no-changes{text-align:center;color:var(--text-muted);padding:2rem;font-style:italic}.files-container{display:flex;flex-direction:column;gap:.5rem}.file-item{background:var(--bg-input);border-radius:6px;padding:.75rem 1rem;border-left:3px solid var(--border);transition:all .2s}.file-item:hover{background:var(--bg-card);transform:translate(2px)}.file-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem}.file-status-icon{font-size:1.25rem;font-weight:700;width:24px;text-align:center}.file-path{flex:1;font-family:Courier New,monospace;font-size:.9rem;color:var(--text)}.file-status-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:.25rem .5rem;border-radius:4px;background:#ffffff0d}.file-stats{display:flex;gap:1rem;font-size:.85rem;font-family:Courier New,monospace;padding-left:40px}.file-stats .additions{color:#22c55e;font-weight:600}.file-stats .deletions{color:#ef4444;font-weight:600}.loading-spinner{text-align:center;padding:3rem;color:var(--text-muted);font-size:.9rem}.commits-table tr{cursor:pointer;transition:background-color .2s}.commits-table tr:hover{background-color:#4a9ee81a}.file-header.clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.file-header.clickable:hover{opacity:.9}.expand-icon{font-size:.75rem;width:20px;display:inline-block;color:var(--text-muted);transition:transform .2s}.diff-content{margin-top:.75rem;border-radius:6px;overflow:hidden;background:var(--bg);border:1px solid var(--border)}.diff-lines{font-family:Courier New,Consolas,Monaco,monospace;font-size:.85rem;line-height:1.5;overflow-x:auto}.diff-line{display:flex;min-height:1.5em;padding:0;border-left:3px solid transparent}.diff-line:hover{background:#ffffff08}.diff-line-add{background:#22c55e1a;border-left-color:#22c55e}.diff-line-remove{background:#ef44441a;border-left-color:#ef4444}.diff-line-context{background:transparent}.diff-line-header{background:var(--bg-input);color:var(--text-muted);font-weight:600;padding:.25rem .75rem;border-left-color:var(--border)}.line-number{display:inline-block;min-width:50px;padding:0 .75rem;text-align:right;color:var(--text-muted);background:var(--bg-input);-webkit-user-select:none;user-select:none;flex-shrink:0}.line-content{flex:1;padding:0 .75rem;white-space:pre-wrap;word-break:break-all;overflow-wrap:anywhere}.diff-line-add .line-content{color:#22c55e}.diff-line-remove .line-content{color:#ef4444}.diff-line-context .line-content{color:var(--text)}.diff-line-header .line-content{color:var(--text-muted);font-style:italic}.no-diff-content{padding:1rem;text-align:center;color:var(--text-muted);font-style:italic}.database-tab{display:flex;flex-direction:column;gap:1.5rem;height:100%}.database-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;background:var(--bg-card);border-radius:8px;border:1px solid var(--border-color)}.database-header-left{display:flex;align-items:center;gap:2rem}.database-header h2,.database-header h3{margin:0;font-size:1.25rem;color:var(--text-primary)}.database-header-right{display:flex;align-items:center;gap:.75rem}.database-env-select{padding:.625rem 2.5rem .625rem .875rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%234A9EE8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:12px;min-width:180px}.database-env-select option{background:#1a1a1a;color:#fff;padding:.75rem;font-weight:500}.database-env-select option:checked{background:var(--primary-color);color:#fff}.database-env-select:hover{border-color:var(--primary-color);background-color:#4a9ee80d}.database-env-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4a9ee81a}.database-stats{display:flex;gap:2rem}.database-stat{display:flex;flex-direction:column;align-items:center;gap:.25rem}.database-stat .stat-value{font-size:1.75rem;font-weight:600;color:var(--primary-color)}.database-stat .stat-label{font-size:.875rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.database-content{display:grid;grid-template-columns:280px 1fr;gap:1.5rem;flex:1;min-height:0}.database-tables-panel{display:flex;flex-direction:column;gap:1rem;background:var(--bg-card);border-radius:8px;border:1px solid var(--border-color);padding:1rem;overflow-y:auto;max-height:70vh}.database-tables-panel h4{margin:0 0 .5rem;font-size:1rem;color:var(--text-primary)}.table-search-input{width:100%;padding:.625rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:.875rem;transition:border-color .2s}.table-search-input:focus{outline:none;border-color:var(--primary-color)}.table-search-input::placeholder{color:var(--text-muted)}.database-tables-list{display:flex;flex-direction:column;gap:.5rem}.database-table-item{padding:.75rem;background:var(--bg-input);border:1px solid transparent;border-radius:6px;cursor:pointer;transition:all .2s;display:flex;justify-content:space-between;align-items:center}.database-table-item:hover{background:#4a9ee81a;border-color:var(--primary-color)}.database-table-item.active{background:#4a9ee833;border-color:var(--primary-color)}.database-table-item .table-name{font-weight:500;color:var(--text-primary)}.database-table-item .row-count{font-size:.75rem;color:var(--text-muted);background:var(--bg-card);padding:.25rem .5rem;border-radius:4px}.database-main-panel{display:flex;flex-direction:column;gap:1.5rem;overflow-y:auto}.database-connection-info{background:var(--bg-card);border-radius:8px;border:1px solid var(--border-color);padding:1.5rem}.database-connection-info h4{margin:0 0 1rem;font-size:1rem;color:var(--text-primary)}.connection-details{display:flex;flex-direction:column;gap:.75rem}.connection-item{display:flex;align-items:center;gap:.75rem}.connection-item label{min-width:120px;font-weight:500;color:var(--text-muted);font-size:.875rem}.connection-item code{flex:1;padding:.5rem .75rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:6px;font-family:Courier New,monospace;font-size:.875rem;color:var(--text-primary)}.btn-copy{padding:.5rem 1rem;background:var(--primary-color);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;transition:background-color .2s;display:flex;align-items:center;gap:.5rem;white-space:nowrap}.btn-copy:hover{background:var(--primary-hover)}.btn-copy:disabled{background:var(--text-muted);cursor:not-allowed}.btn-copy.copied{background:#22c55e}.btn-copy svg{width:16px;height:16px}.database-query-section{background:var(--bg-card);border-radius:8px;border:1px solid var(--border-color);padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.database-query-section h4{margin:0;font-size:1rem;color:var(--text-primary)}.query-templates{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1.5rem}.btn-template{padding:.5rem 1rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;font-size:.875rem;color:var(--text-primary);transition:all .2s}.btn-template:hover:not(:disabled){background:#4a9ee81a;border-color:var(--primary-color)}.btn-template:disabled{opacity:.5;cursor:not-allowed}.query-textarea{width:100%;min-height:120px;padding:.75rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-family:Courier New,monospace;font-size:.875rem;resize:vertical;transition:border-color .2s}.query-textarea:focus{outline:none;border-color:var(--primary-color)}.query-actions{display:flex;gap:.75rem;align-items:center;margin-top:1.5rem}.btn-execute{padding:.625rem 1.25rem;background:var(--primary-color);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;transition:background-color .2s}.btn-execute:hover:not(:disabled){background:var(--primary-hover)}.btn-execute:disabled{background:var(--text-muted);cursor:not-allowed}.btn-clear{padding:.625rem 1.25rem;background:transparent;color:var(--text-muted);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;font-size:.875rem;transition:all .2s}.btn-clear:hover:not(:disabled){background:var(--bg-input);border-color:var(--text-muted)}.btn-clear:disabled{opacity:.5;cursor:not-allowed}.query-result-meta{font-size:.875rem;color:var(--text-muted)}.database-results-section{background:var(--bg-card);border-radius:8px;border:1px solid var(--border-color);padding:1.5rem;max-height:600px;overflow:auto}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.results-header h4{margin:0;font-size:1rem;color:var(--text-primary)}.btn-export{padding:.5rem 1rem;background:transparent;color:var(--primary-color);border:1px solid var(--primary-color);border-radius:6px;cursor:pointer;font-size:.875rem;transition:all .2s;display:flex;align-items:center;gap:.5rem}.btn-export:hover{background:#4a9ee81a}.btn-export svg{width:16px;height:16px}.query-results-table{width:100%;border-collapse:collapse;font-size:.875rem}.query-results-table th{background:var(--bg-input);color:var(--text-primary);font-weight:600;text-align:left;padding:.75rem;border:1px solid var(--border-color);position:sticky;top:0}.query-results-table td{padding:.625rem .75rem;border:1px solid var(--border-color);color:var(--text-primary)}.query-results-table .null-value{color:var(--text-muted);font-style:italic}.database-schema-section{background:var(--bg-card);border-radius:8px;border:1px solid var(--border-color);padding:1.5rem}.database-schema-section h4{margin:0 0 1rem;font-size:1rem;color:var(--text-primary)}.schema-table{width:100%;border-collapse:collapse;font-size:.875rem;margin-bottom:1.5rem}.schema-table th{background:var(--bg-input);color:var(--text-primary);font-weight:600;text-align:left;padding:.75rem;border:1px solid var(--border-color)}.schema-table td{padding:.625rem .75rem;border:1px solid var(--border-color);color:var(--text-primary)}.schema-table .type-badge{display:inline-block;padding:.25rem .5rem;background:#4a9ee81a;color:var(--primary-color);border-radius:4px;font-size:.75rem;font-weight:500}.schema-table .constraint-badge{display:inline-block;padding:.25rem .5rem;background:#a855f71a;color:#a855f7;border-radius:4px;font-size:.75rem;font-weight:500;margin-right:.25rem}.schema-indexes h5{margin:1.5rem 0 .75rem;font-size:.875rem;color:var(--text-primary)}.schema-indexes ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.schema-indexes li{padding:.625rem .75rem;background:var(--bg-input);border-radius:6px;font-size:.875rem;color:var(--text-primary)}.schema-indexes code{color:var(--primary-color);font-family:Courier New,monospace}.no-tables-message{text-align:center;padding:3rem;color:var(--text-muted);font-size:.875rem}@media(max-width:1024px){.database-content{grid-template-columns:1fr}.database-tables-panel{max-height:300px}.database-stats{gap:1rem}.connection-item{flex-direction:column;align-items:flex-start}.connection-item label{min-width:unset}.connection-item code{width:100%}}.database-connection-modal,.database-query-modal{max-width:900px;max-height:90vh;overflow-y:auto}.database-connection-modal .modal-body,.database-query-modal .modal-body{padding:2rem}.database-query-modal{max-width:1200px}.database-connection-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-bottom:2rem}.connection-field{display:flex;flex-direction:column;gap:.75rem}.connection-field label{font-weight:600;font-size:.875rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.connection-field code{padding:1rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:6px;font-family:Courier New,monospace;font-size:.875rem;color:var(--text-primary);word-break:break-all}.connection-field-full{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.connection-field-full label{font-weight:600;font-size:.875rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.connection-string-box{display:flex;gap:1rem;align-items:center;background:var(--bg-input);border:1px solid var(--border-color);border-radius:6px;padding:1rem}.connection-string-box code{flex:1;background:transparent;border:none;padding:0;font-family:Courier New,monospace;font-size:.875rem;color:var(--text-primary);word-break:break-all}.query-hint{font-size:.875rem;color:var(--text-muted);margin:0 0 1.5rem}.query-result-info{font-size:.875rem;color:var(--text-muted)}.schema-table tbody tr:nth-child(2n){background:#ffffff05}.schema-table tbody tr:nth-child(odd){background:transparent}.schema-table tbody tr:hover{background:#4a9ee80d}.query-results-table tbody tr:nth-child(2n){background:#ffffff05}.query-results-table tbody tr:nth-child(odd){background:transparent}.query-results-table tbody tr:hover{background:#4a9ee80d}.schema-table,.query-results-table{border-collapse:separate;border-spacing:0}.schema-table th,.query-results-table th{position:sticky;top:0;z-index:10;background:var(--bg-input);border-bottom:2px solid var(--border-color)}.schema-table td,.query-results-table td{border-bottom:1px solid rgba(255,255,255,.05)}.schema-table tr:last-child td,.query-results-table tr:last-child td{border-bottom:none}.database-alert{padding:.875rem 1rem;border-radius:6px;font-size:.875rem;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}.database-alert-error{background:#ef44441a;border:1px solid #ef4444;color:#ef4444}.database-alert button{background:none;border:none;color:inherit;font-size:1.5rem;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;opacity:.7;transition:opacity .2s}.database-alert button:hover{opacity:1}.database-tables-header{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.database-tables-header h3{margin:0;font-size:1rem;color:var(--text-primary)}.database-tables-loading{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem;color:var(--text-muted)}.database-tables-empty{text-align:center;padding:2rem;color:var(--text-muted);font-size:.875rem}.table-meta{font-size:.75rem;color:var(--text-muted)}.database-schema-panel{background:var(--bg-card);border-radius:8px;border:1px solid var(--border-color);padding:1.5rem;margin-bottom:1.5rem}.schema-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.schema-header h3{margin:0;font-size:1.125rem;color:var(--text-primary)}.schema-loading{font-size:.875rem;color:var(--text-muted)}.schema-table-wrapper{overflow-x:auto;margin-bottom:1.5rem}.query-results-wrapper{overflow-x:auto;margin-top:1rem;border:1px solid var(--border-color);border-radius:6px}.spinner-sm{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.command-palette-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10000;display:flex;align-items:flex-start;justify-content:center;padding-top:15vh;animation:fadeIn .15s ease-out}.command-palette{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;width:90%;max-width:640px;max-height:60vh;display:flex;flex-direction:column;box-shadow:0 16px 70px #0006;animation:slideDown .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.command-palette-header{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--border-color)}.command-palette-header .search-icon{font-size:1.25rem;color:var(--text-muted)}.command-palette-input{flex:1;background:transparent;border:none;outline:none;font-size:1rem;color:var(--text-primary);font-family:inherit}.command-palette-input::placeholder{color:var(--text-muted)}.command-palette-results{flex:1;overflow-y:auto;padding:.5rem 0;max-height:calc(60vh - 120px)}.command-palette-results::-webkit-scrollbar{width:8px}.command-palette-results::-webkit-scrollbar-track{background:transparent}.command-palette-results::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.command-palette-results::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.command-palette-category{padding:.5rem 1.25rem;font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.command-palette-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.25rem;cursor:pointer;transition:all .1s ease}.command-palette-item:hover{background:var(--bg-hover)}.command-palette-item.selected{background:var(--primary);color:#fff}.command-palette-item.selected .command-palette-item-description{color:#fffc}.command-palette-item-icon{font-size:1.25rem;flex-shrink:0}.command-palette-item-content{flex:1;min-width:0}.command-palette-item-label{font-size:.9375rem;color:var(--text-primary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command-palette-item.selected .command-palette-item-label{color:#fff}.command-palette-item-description{font-size:.8125rem;color:var(--text-muted);margin-top:.125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command-palette-empty{padding:3rem 1.25rem;text-align:center;color:var(--text-muted);font-size:.875rem}.command-palette-footer{border-top:1px solid var(--border-color);padding:.75rem 1.25rem;display:flex;gap:1rem;font-size:.75rem;color:var(--text-muted)}.command-palette-shortcut{display:flex;align-items:center;gap:.5rem}.command-palette-key{background:var(--bg);border:1px solid var(--border-color);border-radius:4px;padding:.125rem .375rem;font-size:.6875rem;font-weight:600;font-family:Segoe UI,system-ui,-apple-system,sans-serif}.deployment-progress{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.deployment-progress-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.deployment-progress-header h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0}.deployment-steps{display:flex;flex-direction:column;gap:0}.deployment-step-wrapper{display:flex;flex-direction:column}.deployment-step{display:flex;align-items:center;gap:1rem;padding:.75rem 0;transition:all .3s ease}.deployment-step-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0;transition:all .3s ease}.deployment-step-pending .deployment-step-icon{background:var(--bg);border:2px solid var(--border-color);color:var(--text-muted)}.deployment-step-active .deployment-step-icon{background:var(--primary);border:2px solid var(--primary);color:#fff;animation:pulse 2s ease-in-out infinite}.deployment-step-completed .deployment-step-icon{background:var(--success);border:2px solid var(--success);color:#fff}.deployment-step-failed .deployment-step-icon{background:var(--error);border:2px solid var(--error);color:#fff}@keyframes pulse{0%,to{box-shadow:0 0 #6366f1b3}50%{box-shadow:0 0 0 8px #6366f100}}.step-check,.step-error,.step-pending{font-size:1.25rem}.deployment-step-content{flex:1}.deployment-step-label{font-size:.9375rem;font-weight:500;color:var(--text-primary);margin-bottom:.125rem}.deployment-step-status{font-size:.8125rem;color:var(--text-muted)}.deployment-step-active .deployment-step-label{color:var(--primary);font-weight:600}.deployment-step-completed .deployment-step-label{color:var(--text-muted)}.deployment-step-failed .deployment-step-label{color:var(--error)}.deployment-step-connector{width:2px;height:24px;margin-left:19px;transition:all .3s ease}.deployment-step-connector-pending{background:var(--border-color)}.deployment-step-connector-active,.deployment-step-connector-completed{background:var(--success)}.deployment-step-connector-failed{background:var(--error)}.deployment-error{margin-top:1.5rem;padding:1rem;background:#ef44441a;border:1px solid var(--error);border-radius:6px}.deployment-error-title{font-size:.875rem;font-weight:600;color:var(--error);margin-bottom:.5rem}.deployment-error-message{font-size:.8125rem;color:var(--text-primary);font-family:Consolas,Monaco,Courier New,monospace;white-space:pre-wrap;word-break:break-word}.deployment-logs{margin-top:1.5rem;padding:1rem;background:var(--bg);border:1px solid var(--border-color);border-radius:6px}.deployment-logs-title{font-size:.875rem;font-weight:600;color:var(--text-primary);margin-bottom:.75rem}.deployment-logs-content{max-height:200px;overflow-y:auto;font-family:Consolas,Monaco,Courier New,monospace;font-size:.8125rem}.deployment-log-line{color:var(--text-primary);padding:.25rem 0;line-height:1.5}.app-row{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;margin:.5rem 0;text-decoration:none;color:inherit;background:var(--bg-input, rgba(255, 255, 255, .03));border:1px solid var(--border);border-radius:6px;transition:all .15s ease;min-height:48px;box-shadow:0 1px 2px #0000000d}.app-row:hover{background:var(--bg-card, rgba(255, 255, 255, .08));transform:translateY(-1px);box-shadow:0 3px 12px #00000026}.app-row-favorite{background:transparent;border:none;font-size:1rem;color:var(--text-muted);cursor:pointer;padding:.125rem;line-height:1;transition:all .2s ease;flex-shrink:0}.app-row-favorite:hover{color:var(--warning);transform:scale(1.15)}.app-row-favorite.active{color:var(--warning)}.app-row-favicon{width:18px;height:18px;flex-shrink:0;border-radius:3px;object-fit:cover}.app-row-name{font-size:.875rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:180px;flex-shrink:0}.app-row-category{width:50px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.app-row-category-badge{font-size:.6875rem;font-weight:700;letter-spacing:.04em;padding:.125rem .375rem;border-radius:3px;border:1px solid;background:transparent;white-space:nowrap}.app-row-description{font-size:.8125rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.app-row-env{display:flex;flex-direction:column;gap:.125rem;width:220px;flex-shrink:0}.app-row-env-status{display:flex;align-items:center;gap:.375rem}.app-row-env-label{font-size:.6875rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;min-width:52px;flex-shrink:0}.app-row-status-dot{font-size:.75rem;line-height:1;animation:statusPulse 2s ease-in-out infinite}.app-row-status-dot.dot-success{color:var(--success)}.app-row-status-dot.dot-error{color:var(--error)}.app-row-status-dot.dot-warning{color:var(--warning)}.app-row-status-dot.dot-muted{color:var(--text-muted)}.app-row-status-label{font-size:.8125rem;font-weight:500}.app-row-env.status-success .app-row-status-label{color:var(--success)}.app-row-env.status-error .app-row-status-label{color:var(--error)}.app-row-env.status-warning .app-row-status-label{color:var(--warning)}.app-row-env.status-muted .app-row-status-label{color:var(--text-muted)}.app-row-domain-link{font-size:.6875rem;color:var(--primary);font-family:Consolas,Monaco,Courier New,monospace;text-decoration:none;display:inline-flex;align-items:center;gap:.25rem;transition:all .15s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-row-domain-link:hover{color:var(--primary-hover, #4f46e5);text-decoration:underline}.app-row-domain-link .link-icon{width:10px;height:10px;flex-shrink:0;opacity:.7}.app-row-domain-link:hover .link-icon{opacity:1}.app-row-domain{font-size:.6875rem;color:var(--text-muted);font-family:Consolas,Monaco,Courier New,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-row-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.125rem;width:160px;flex-shrink:0}.app-row-meta-time{font-size:.75rem;color:var(--text-muted)}.app-row-meta-owner{font-size:.6875rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}@keyframes statusPulse{0%,to{opacity:1}50%{opacity:.6}}.quick-stats{background:transparent;border:none;border-radius:0;padding:0;margin-bottom:0}.quick-stats-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.quick-stats-header h2{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0}.quick-stats-updated{font-size:.7rem;color:var(--text-muted)}.quick-stats-grid{display:flex;flex-direction:column;gap:.875rem}.quick-stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:.875rem;display:flex;align-items:center;gap:.75rem;transition:all .2s ease}.quick-stat-card:hover{transform:translate(2px);box-shadow:0 2px 8px #0000001a}.quick-stat-card.stat-primary{border-left:3px solid var(--primary)}.quick-stat-card.stat-success{border-left:3px solid var(--success)}.quick-stat-card.stat-error{border-left:3px solid var(--error)}.quick-stat-card.stat-warning{border-left:3px solid var(--warning)}.quick-stat-card.stat-info{border-left:3px solid var(--info)}.quick-stat-icon{font-size:2rem;line-height:1}.quick-stat-content{flex:1;min-width:0}.quick-stat-label{font-size:.75rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.375rem}.quick-stat-value{font-size:1.75rem;font-weight:700;color:var(--text-primary);line-height:1}.quick-stat-trend{display:flex;align-items:center;gap:.25rem;font-size:.75rem;font-weight:600;margin-top:.5rem}.quick-stat-trend.trend-up{color:var(--success)}.quick-stat-trend.trend-down{color:var(--error)}.trend-icon{font-size:.875rem}@media(max-width:768px){.quick-stats-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.quick-stat-value{font-size:1.5rem}}.sparkline{display:block}.sparkline-empty{background:var(--bg);border:1px dashed var(--border-color);border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.75rem}.sparkline-empty:after{content:"No data"}.resource-sparkline{background:var(--bg);border:1px solid var(--border-color);border-radius:8px;padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.resource-sparkline-header{display:flex;align-items:center;justify-content:space-between}.resource-sparkline-info{display:flex;align-items:center;gap:.375rem}.resource-sparkline-icon{font-size:1rem;line-height:1}.resource-sparkline-label{font-size:.75rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.resource-sparkline-value{font-size:1.125rem;font-weight:700;color:var(--text-primary);line-height:1}.resource-sparkline-unit{font-size:.75rem;font-weight:500;color:var(--text-muted);margin-left:.125rem}.realtime-status-indicator{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border-radius:6px;font-size:.875rem;font-weight:500;transition:all .2s ease}.realtime-status-indicator.status-success{background:#22c55e1a;color:var(--success)}.realtime-status-indicator.status-error{background:#ef44441a;color:var(--error)}.realtime-status-indicator.status-warning{background:#fbbf241a;color:var(--warning)}.realtime-status-indicator.status-info{background:#6366f11a;color:var(--primary)}.realtime-status-indicator.status-muted{background:var(--bg);color:var(--text-muted)}.status-dot{font-size:.875rem;line-height:1;animation:statusBlink 2s ease-in-out infinite}.status-dot.pulse{animation:statusPulse 2s ease-in-out infinite}@keyframes statusBlink{0%,to{opacity:1}50%{opacity:.6}}.status-label{font-weight:500}.status-connection{margin-left:.25rem}.connection-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--text-muted);opacity:.5}.connection-dot.connected{background:var(--success);opacity:1;animation:connectionPulse 2s ease-in-out infinite}@keyframes connectionPulse{0%,to{box-shadow:0 0 #22c55eb3}50%{box-shadow:0 0 0 3px #22c55e00}}.realtime-deployment-status{background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;padding:1rem;margin-top:1rem}.deployment-status-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.deployment-status-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.connection-indicator{font-size:.75rem;font-weight:500;display:flex;align-items:center;gap:.25rem}.connection-indicator.connected{color:var(--success)}.connection-indicator.disconnected{color:var(--text-muted)}.deployment-current-step{display:flex;align-items:center;gap:.5rem;font-size:.9375rem;color:var(--text-primary)}.status-success{color:var(--success);font-size:1.125rem}.status-error{color:var(--error);font-size:1.125rem}
