.auth-background{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;z-index:0}.auth-background-canvas{position:absolute;top:0;left:0;width:100%;height:100%}.auth-background-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#667eea0d,#764ba20d);pointer-events:none}[data-theme=dark] .auth-background-overlay{background:linear-gradient(135deg,#667eea1a,#764ba21a)}.auth-layout{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;background:var(--bg-secondary)}.auth-layout-content{position:relative;z-index:1;width:100%;max-width:500px;padding:2rem}@media (max-width: 768px){.auth-layout-content{padding:1rem}}.auth-card{background:var(--bg-elevated-alpha);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-color);border-radius:12px;padding:2.5rem;box-shadow:var(--shadow-lg);width:100%;max-width:500px;margin:0 auto;transition:transform .3s ease,box-shadow .3s ease}.auth-card:hover{transform:translateY(-2px);box-shadow:0 15px 25px #00000026}[data-theme=dark] .auth-card{background:var(--bg-elevated-alpha);border-color:#ffffff1a}@media (max-width: 768px){.auth-card{padding:1.5rem;border-radius:8px}}.auth-form{display:flex;flex-direction:column;gap:1.5rem}.auth-form-error{background:var(--danger-bg);color:var(--danger-color);padding:.75rem 1rem;border-radius:6px;display:flex;align-items:center;gap:.5rem;border:1px solid var(--danger-color);font-size:.9rem}.auth-form-error .error-icon{font-size:1.1rem}.auth-form-fields{display:flex;flex-direction:column;gap:1.5rem}.auth-form-submit{background:var(--primary-color);color:#fff;border:none;padding:.875rem 1.5rem;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s ease,transform .1s ease;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.5rem}.auth-form-submit:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px)}.auth-form-submit:active:not(:disabled){transform:translateY(0)}.auth-form-submit:disabled{opacity:.6;cursor:not-allowed}[data-theme=dark] .auth-form-submit{box-shadow:0 2px 8px #667eea4d}.input-container{display:flex;flex-direction:column;gap:.5rem;width:100%;margin-bottom:0}form .input-container:not(:last-child){margin-bottom:.5rem}.dialog form .input-container:not(:last-child){margin-bottom:0}.input-wrapper{position:relative;display:flex;align-items:center}.input-wrapper.has-icon{position:relative}.input-icon{position:absolute;left:1rem;color:var(--text-secondary);z-index:2;transition:color .2s ease;pointer-events:none}.input-wrapper.floating-label.has-icon .input-icon{left:1rem}.input-wrapper:not(.floating-label).has-icon .input-icon{left:1rem}.input-wrapper:not(.floating-label).has-icon .input-field{padding-left:2.75rem}.input-wrapper.floating-label{position:relative}.input-wrapper.floating-label .input-label{position:absolute;left:1rem;top:50%;transform:translateY(-50%);font-size:1rem;color:var(--text-secondary);pointer-events:none;transition:all .2s cubic-bezier(.4,0,.2,1);background:var(--bg-primary);padding:0 .25rem;z-index:1;white-space:nowrap;font-weight:400}.input-wrapper.floating-label.has-icon .input-label{left:2.75rem}.input-wrapper.floating-label .input-field{padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:8px;font-size:1rem;background:var(--bg-primary);background-repeat:no-repeat;color:var(--text-primary);transition:all .2s ease;width:100%;position:relative;z-index:0}.input-wrapper.floating-label.has-icon .input-field{padding-left:2.75rem}.input-wrapper.floating-label .input-field:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #667eea1a}.input-wrapper.floating-label .input-field:focus+.input-label,.input-wrapper.floating-label.active .input-label{top:-.5rem;transform:translateY(0) scale(.85);font-size:.85rem;color:var(--primary-color);font-weight:600;background:var(--bg-primary);z-index:2}.input-wrapper.floating-label .input-field:focus~.input-icon,.input-wrapper.floating-label.active~.input-icon{color:var(--primary-color)}.input-wrapper.floating-label .input-field::placeholder{color:transparent}.input-label-static{display:block;font-weight:500;color:var(--text-primary);font-size:.95rem;margin-bottom:.5rem}.input-wrapper:not(.floating-label) .input-field{padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:8px;font-size:1rem;background:var(--bg-primary);color:var(--text-primary);transition:all .2s ease;width:100%}.input-wrapper:not(.floating-label) .input-field:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #667eea1a}.input-wrapper:not(.floating-label) .input-field:focus~.input-icon{color:var(--primary-color)}.input-wrapper:not(.floating-label) .input-field::placeholder{color:var(--text-tertiary)}.input-field:disabled{opacity:.6;cursor:not-allowed;background:var(--bg-subtle)}.input-container.has-error .input-field{border-color:var(--danger-color)}.input-container.has-error .input-field:focus{border-color:var(--danger-color);box-shadow:0 0 0 3px #dc35451a}.input-container.has-error .input-icon,.input-container.has-error .input-label{color:var(--danger-color)}.input-container.is-disabled{opacity:.6;cursor:not-allowed}.input-hint{color:var(--text-tertiary);font-size:.85rem;margin-top:-.25rem;margin-left:.25rem}.input-error{color:var(--danger-color);font-size:.85rem;margin-top:-.25rem;margin-left:.25rem;display:flex;align-items:center;gap:.25rem}.input-error:before{content:"⚠";font-size:.75rem}[data-theme=dark] .input-wrapper.floating-label .input-label{background:var(--bg-primary)}[data-theme=dark] .input-wrapper.floating-label.active .input-label,[data-theme=dark] .input-wrapper.floating-label .input-field:focus+.input-label{background:var(--bg-primary)}.input-container{position:relative}.input-wrapper.floating-label.active .input-label,.input-wrapper.floating-label .input-field:focus+.input-label{background:inherit}.profile-content .input-wrapper.floating-label.active .input-label,.profile-content .input-wrapper.floating-label .input-field:focus+.input-label{background:var(--bg-elevated)}.select-field{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem;cursor:pointer}[data-theme=dark] .select-field{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23b0b0b0' d='M6 9L1 4h10z'/%3E%3C/svg%3E")}.select-field:focus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23667eea' d='M6 9L1 4h10z'/%3E%3C/svg%3E")}[data-theme=dark] .select-field:focus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23818cf8' d='M6 9L1 4h10z'/%3E%3C/svg%3E")}.input-wrapper.floating-label .select-field:focus+.input-label,.input-wrapper.floating-label.active .select-field+.input-label{top:-.5rem;transform:translateY(0) scale(.85);font-size:.85rem;color:var(--primary-color);font-weight:600;background:var(--bg-primary);z-index:2}[data-theme=dark] .input-wrapper.floating-label.active .select-field+.input-label,[data-theme=dark] .input-wrapper.floating-label .select-field:focus+.input-label{background:var(--bg-primary)}.profile-content .input-wrapper.floating-label.active .select-field+.input-label,.profile-content .input-wrapper.floating-label .select-field:focus+.input-label{background:var(--bg-elevated)}.dialog .input-wrapper.floating-label.active .select-field+.input-label,.dialog .input-wrapper.floating-label .select-field:focus+.input-label{background:var(--bg-elevated)}@media (max-width: 768px){.input-wrapper.floating-label .input-label{font-size:.9rem}.input-wrapper.floating-label.active .input-label{font-size:.8rem}}.login-header{text-align:center;margin-bottom:2rem}.login-header .logo-icon{width:64px;height:64px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-color),#764ba2);border-radius:12px;color:#fff;font-size:1.5rem}.login-header h1{margin:0 0 .5rem;font-size:1.75rem;color:var(--text-primary)}.login-subtitle{color:var(--text-secondary);font-size:.95rem;margin:0}.login-forgot-password{text-align:right;margin-top:.5rem;margin-bottom:-.5rem}.forgot-password-link{color:var(--primary-color);text-decoration:none;font-size:.9rem;transition:color .2s ease}.forgot-password-link:hover{color:var(--primary-hover);text-decoration:underline}.login-footer{margin-top:1.5rem;text-align:center;color:var(--text-secondary);font-size:.9rem}.login-footer p{margin:.5rem 0}.register-header{text-align:center;margin-bottom:2rem}.register-header .logo-icon{width:64px;height:64px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-color),#764ba2);border-radius:12px;color:#fff;font-size:1.5rem}.register-header h1{margin:0 0 .5rem;font-size:1.75rem;color:var(--text-primary)}.register-subtitle{color:var(--text-secondary);font-size:.95rem;margin:0}.register-invite-toggle{margin-bottom:1.5rem;padding:.75rem;background:var(--bg-subtle);border-radius:6px;border:1px solid var(--border-color)}.toggle-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem;color:var(--text-primary)}.toggle-label input[type=checkbox]{cursor:pointer}.password-toggle{position:absolute;right:1rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center;z-index:10;margin-top:.5rem}.register-footer{margin-top:1.5rem;text-align:center;color:var(--text-secondary);font-size:.9rem}.register-footer p{margin:.5rem 0}.landing-container{min-height:100vh;display:flex;flex-direction:column;position:relative;overflow-x:hidden;background:var(--bg-secondary)}.landing-background{position:fixed;top:0;left:0;right:0;bottom:0;z-index:0;overflow:hidden}.bg-gradient{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,#667eea1a,#764ba21a)}.bg-shapes{position:absolute;top:0;left:0;right:0;bottom:0}.bg-shape{position:absolute;border-radius:50%;opacity:.1;animation:float 20s infinite ease-in-out}.bg-shape-1{width:300px;height:300px;background:var(--primary-color);top:10%;left:10%;animation-delay:0s}.bg-shape-2{width:200px;height:200px;background:#764ba2;top:60%;right:15%;animation-delay:5s}.bg-shape-3{width:150px;height:150px;background:var(--primary-color);bottom:20%;left:20%;animation-delay:10s}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-30px) scale(1.1)}66%{transform:translate(-20px,20px) scale(.9)}}.landing-hero{position:relative;z-index:1;padding:6rem 2rem;text-align:center;background:linear-gradient(135deg,var(--primary-color) 0%,#764ba2 100%);color:#fff;min-height:80vh;display:flex;align-items:center;justify-content:center}.hero-content{max-width:900px;margin:0 auto}.hero-icon{font-size:5rem;margin-bottom:1.5rem;animation:fadeIn .8s ease}.hero-title{font-size:4rem;margin:0 0 1rem;font-weight:700;background:linear-gradient(135deg,#fff,#ffffffe6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:fadeIn .8s ease .2s both}.hero-subtitle{font-size:1.75rem;margin:0 0 1.5rem;opacity:.95;font-weight:300;animation:fadeIn .8s ease .4s both}.hero-description{font-size:1.2rem;margin:0 0 3rem;opacity:.9;line-height:1.8;max-width:700px;margin-left:auto;margin-right:auto;animation:fadeIn .8s ease .6s both}.hero-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;animation:fadeIn .8s ease .8s both}.btn-hero{padding:1rem 2.5rem;font-size:1.1rem;border-radius:8px;transition:all .3s ease;display:inline-flex;align-items:center;gap:.75rem;font-weight:600;position:relative;overflow:hidden}.btn-primary.btn-hero{background:#fff;color:var(--primary-color);border:none}.btn-primary.btn-hero:hover{transform:translateY(-3px);box-shadow:0 8px 20px #0003}.btn-primary.btn-hero .btn-arrow{transition:transform .3s ease}.btn-primary.btn-hero:hover .btn-arrow{transform:translate(4px)}.btn-secondary.btn-hero{background:transparent;color:#fff;border:2px solid white}.btn-secondary.btn-hero:hover{background:#ffffff26;transform:translateY(-3px)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .8s ease}.animate-fade-in-delay{animation:fadeIn .8s ease .2s both}.animate-fade-in-delay-2{animation:fadeIn .8s ease .4s both}.animate-fade-in-delay-3{animation:fadeIn .8s ease .6s both}.animate-fade-in-delay-4{animation:fadeIn .8s ease .8s both}.landing-features{position:relative;z-index:1;padding:6rem 2rem;background:var(--bg-secondary)}.features-header{text-align:center;margin-bottom:4rem;max-width:800px;margin-left:auto;margin-right:auto}.features-header h2{font-size:2.5rem;margin:0 0 1rem;color:var(--text-primary);font-weight:700}.features-header p{font-size:1.2rem;color:var(--text-secondary);margin:0}.feature-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem}.feature-card{background:var(--bg-elevated);padding:2.5rem;border-radius:12px;box-shadow:var(--shadow-md);text-align:center;transition:all .3s ease;border:1px solid var(--border-color);opacity:0;transform:translateY(30px)}.feature-card.animate-in{opacity:1;transform:translateY(0);animation:slideUp .6s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.feature-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);border-color:var(--primary-color)}.feature-icon{font-size:3rem;color:var(--primary-color);margin-bottom:1.5rem;transition:transform .3s ease}.feature-card:hover .feature-icon{transform:scale(1.1) rotate(5deg)}.feature-card h3{margin:0 0 1rem;color:var(--text-primary);font-size:1.5rem;font-weight:600}.feature-card p{margin:0;color:var(--text-secondary);line-height:1.7;font-size:1rem}.landing-cta{position:relative;z-index:1;padding:6rem 2rem;text-align:center;background:var(--bg-elevated);opacity:0;transform:translateY(30px)}.landing-cta.animate-in{opacity:1;transform:translateY(0);animation:slideUp .6s ease}.landing-cta h2{margin:0 0 1rem;color:var(--text-primary);font-size:2.5rem;font-weight:700}.landing-cta>p{margin:0 0 2.5rem;color:var(--text-secondary);font-size:1.2rem}.cta-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.btn-cta{padding:1rem 2.5rem;font-size:1.1rem;border-radius:8px;transition:all .3s ease;display:inline-flex;align-items:center;gap:.75rem;font-weight:600}.btn-primary.btn-cta{background:var(--primary-color);color:#fff;border:none}.btn-primary.btn-cta:hover{background:var(--primary-hover);transform:translateY(-3px);box-shadow:var(--shadow-lg)}.btn-secondary.btn-cta{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary.btn-cta:hover{background:var(--border-color);transform:translateY(-3px)}.landing-footer{position:relative;z-index:1;padding:3rem 2rem;background:var(--bg-elevated);border-top:1px solid var(--border-color)}.footer-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:2rem;margin-bottom:2rem}.footer-brand{display:flex;align-items:center;gap:.75rem;font-size:1.5rem;font-weight:700;color:var(--text-primary)}.footer-brand svg{color:var(--primary-color)}.footer-links{display:flex;gap:2rem;flex-wrap:wrap}.footer-links a{color:var(--text-secondary);text-decoration:none;transition:color .2s ease}.footer-links a:hover{color:var(--primary-color)}.footer-copyright{text-align:center;color:var(--text-tertiary);font-size:.9rem;padding-top:2rem;border-top:1px solid var(--border-color)}.footer-copyright p{margin:0}@media (max-width: 768px){.landing-hero{padding:4rem 1.5rem;min-height:70vh}.hero-title{font-size:2.5rem}.hero-subtitle{font-size:1.3rem}.hero-description{font-size:1rem}.hero-actions{flex-direction:column;width:100%}.btn-hero{width:100%;justify-content:center}.landing-features{padding:4rem 1.5rem}.features-header h2{font-size:2rem}.feature-grid{grid-template-columns:1fr;gap:1.5rem}.feature-card{padding:2rem}.landing-cta{padding:4rem 1.5rem}.landing-cta h2{font-size:2rem}.cta-actions{flex-direction:column;width:100%}.btn-cta{width:100%;justify-content:center}.footer-content{flex-direction:column;text-align:center}.footer-links{justify-content:center}}.forgot-password-header{text-align:center;margin-bottom:2rem}.forgot-password-header .logo-icon{width:64px;height:64px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-color),#764ba2);border-radius:12px;color:#fff;font-size:1.5rem}.forgot-password-header h1{margin:0 0 .5rem;font-size:1.75rem;color:var(--text-primary)}.forgot-password-subtitle{color:var(--text-secondary);font-size:.95rem;margin:0}.forgot-password-success{text-align:center;padding:2rem 0}.forgot-password-success .success-icon{font-size:4rem;color:#28a745;margin-bottom:1rem;animation:scaleIn .3s ease}.forgot-password-success p{color:var(--text-primary);margin:.5rem 0;line-height:1.6}.forgot-password-success .success-hint{color:var(--text-secondary);font-size:.9rem;margin-top:1rem}.forgot-password-footer{margin-top:1.5rem;text-align:center;color:var(--text-secondary);font-size:.9rem}.forgot-password-footer p{margin:.5rem 0}.reset-password-header{text-align:center;margin-bottom:2rem}.reset-password-header .logo-icon{width:64px;height:64px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-color),#764ba2);border-radius:12px;color:#fff;font-size:1.5rem}.reset-password-header h1{margin:0 0 .5rem;font-size:1.75rem;color:var(--text-primary)}.reset-password-subtitle{color:var(--text-secondary);font-size:.95rem;margin:0}.password-toggle{position:absolute;right:1rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center;z-index:10}.password-toggle:hover{color:var(--text-primary)}.password-strength{margin-top:.5rem}.password-strength-bar{height:4px;background:var(--bg-hover);border-radius:2px;overflow:hidden;margin-bottom:.5rem}.password-strength-fill{height:100%;transition:width .3s ease,background-color .3s ease;border-radius:2px}.password-strength-label{font-size:.85rem;color:var(--text-secondary)}.reset-password-success{text-align:center;padding:2rem 0}.reset-password-success .success-icon{font-size:4rem;color:#28a745;margin-bottom:1rem;animation:scaleIn .3s ease}.reset-password-success p{color:var(--text-primary);margin:.5rem 0}.reset-password-footer{margin-top:1.5rem;text-align:center;color:var(--text-secondary);font-size:.9rem}.reset-password-footer p{margin:.5rem 0}.verify-account-header{text-align:center;margin-bottom:2rem}.verify-account-header .logo-icon{width:64px;height:64px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-color),#764ba2);border-radius:12px;color:#fff;font-size:1.5rem}.verify-account-header .logo-icon.error{background:var(--danger-color)}.verify-account-header h1{margin:0 0 .5rem;font-size:1.75rem;color:var(--text-primary)}.verify-account-subtitle{color:var(--text-secondary);font-size:.95rem;margin:0}.verify-account-success{text-align:center;padding:2rem 0}.verify-account-success .success-icon{font-size:4rem;color:#28a745;margin-bottom:1rem;animation:scaleIn .3s ease}@keyframes scaleIn{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.verify-account-success p{color:var(--text-primary);margin:.5rem 0;line-height:1.6}.verify-account-error{background:var(--danger-bg);color:var(--danger-color);padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;border:1px solid var(--danger-color)}.verify-account-error p{margin:0;font-size:.9rem}.verify-account-form{display:flex;flex-direction:column;gap:1.5rem}.verify-account-submit{background:var(--primary-color);color:#fff;border:none;padding:.875rem 1.5rem;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s ease;margin-top:.5rem}.verify-account-submit:hover:not(:disabled){background:var(--primary-hover)}.verify-account-submit:disabled{opacity:.6;cursor:not-allowed}.verify-account-footer{margin-top:1.5rem;text-align:center;color:var(--text-secondary);font-size:.9rem}.verify-account-footer p{margin:.5rem 0}.join-tenant-header{text-align:center;margin-bottom:2rem}.join-tenant-header .logo-icon{width:64px;height:64px;margin:0 auto 1rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-color),#764ba2);border-radius:12px;color:#fff;font-size:1.5rem}.join-tenant-header h1{margin:0 0 .5rem;font-size:1.75rem;color:var(--text-primary)}.join-tenant-subtitle{color:var(--text-secondary);font-size:.95rem;margin:0}.join-tenant-info{margin:2rem 0}.info-card{display:flex;gap:1rem;padding:1rem;background:var(--bg-subtle);border-radius:8px;border:1px solid var(--border-color)}.info-card .info-icon{font-size:1.5rem;color:var(--primary-color);flex-shrink:0}.info-card h3{margin:0 0 .5rem;font-size:1rem;color:var(--text-primary)}.info-card p{margin:0;font-size:.9rem;color:var(--text-secondary);line-height:1.5}.join-tenant-footer{margin-top:1.5rem;text-align:center;color:var(--text-secondary);font-size:.9rem}.join-tenant-footer p{margin:.5rem 0}.link-button{background:none;border:none;color:var(--primary-color);cursor:pointer;text-decoration:underline;font-size:inherit;padding:0;font-family:inherit}.link-button:hover{color:var(--primary-hover)}.context-menu{position:fixed;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 20px #00000026;padding:.5rem;z-index:10000;min-width:180px;animation:contextMenuSlideIn .15s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--bg-elevated-alpha)}@keyframes contextMenuSlideIn{0%{opacity:0;transform:translateY(-5px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.context-menu-item{width:100%;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:transparent;border:none;text-align:left;cursor:pointer;border-radius:6px;color:var(--text-primary);font-size:.9rem;transition:background-color .15s}[dir=rtl] .context-menu-item{text-align:right}.context-menu-item:hover:not(:disabled){background:var(--bg-hover)}.context-menu-item:disabled{opacity:.5;cursor:not-allowed}.context-menu-item.danger{color:var(--danger-color)}.context-menu-item.danger:hover:not(:disabled){background:var(--danger-bg);color:var(--danger-color)}.context-menu-icon{width:16px;height:16px;flex-shrink:0;color:var(--text-secondary)}.context-menu-item.danger .context-menu-icon{color:var(--danger-color)}.context-menu-divider{height:1px;background:var(--border-color);margin:.5rem 0}.dark-theme .context-menu{box-shadow:0 4px 20px #0006}.filter-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease-out}.filter-dialog{background:var(--bg-elevated);border-radius:12px;box-shadow:0 8px 32px #0000004d;width:90%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .3s ease-out;border:1px solid var(--border-color)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.filter-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-color)}.filter-dialog-title{display:flex;align-items:center;gap:.75rem;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.filter-dialog-title svg{width:18px;height:18px;color:var(--primary-color)}.filter-dialog-close{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.filter-dialog-close:hover{background:var(--bg-hover);color:var(--text-primary)}.filter-dialog-close svg{width:18px;height:18px}.filter-dialog-body{padding:1.5rem;overflow-y:auto;flex:1}.filter-dialog-empty{text-align:center;padding:3rem 1rem;color:var(--text-tertiary)}.filter-dialog-filters{display:flex;flex-direction:column;gap:1.5rem}.filter-field{display:flex;flex-direction:column;gap:.5rem}.filter-label{font-size:.9rem;font-weight:500;color:var(--text-primary);margin-bottom:.25rem}.filter-input{width:100%;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:.9rem;transition:all .2s;font-family:inherit}.filter-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #667eea1a}.filter-input::placeholder{color:var(--text-tertiary)}.filter-input[type=date]{cursor:pointer}.filter-input[type=number]{-moz-appearance:textfield}.filter-input[type=number]::-webkit-inner-spin-button,.filter-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.filter-multiselect{position:relative}.filter-multiselect select[multiple]{min-height:120px;padding:.5rem}.filter-multiselect select[multiple] option{padding:.5rem;border-radius:4px;margin:.25rem 0}.filter-multiselect select[multiple] option:checked{background:var(--primary-color);color:#fff}.filter-multiselect-badge{margin-top:.5rem;font-size:.85rem;color:var(--primary-color);font-weight:500}.filter-dialog-footer{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-top:1px solid var(--border-color);gap:1rem}.filter-dialog-actions{display:flex;gap:.75rem;margin-left:auto}.filter-dialog-btn{padding:.75rem 1.5rem;border:1px solid var(--border-color);border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;font-family:inherit}.filter-dialog-btn.secondary{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-color)}.filter-dialog-btn.secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--primary-color)}.filter-dialog-btn.primary{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.filter-dialog-btn.primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.filter-dialog-btn:disabled{opacity:.5;cursor:not-allowed}[dir=rtl] .filter-dialog-actions{margin-left:0;margin-right:auto}@media (max-width: 768px){.filter-dialog{width:95%;max-height:95vh}.filter-dialog-header,.filter-dialog-body,.filter-dialog-footer{padding:1rem}.filter-dialog-footer{flex-direction:column}.filter-dialog-actions{width:100%;margin-left:0}.filter-dialog-btn{flex:1}}.pagination-container{display:flex;flex-direction:column;gap:1rem;padding:1rem;border-top:1px solid var(--border-color);background-color:var(--bg-elevated)}.pagination-info{display:flex;align-items:center;justify-content:flex-start;color:var(--text-secondary);font-size:.875rem}.pagination-text{color:var(--text-secondary)}.pagination-text strong{color:var(--text-primary);font-weight:600}.pagination-controls{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.pagination-page-size{display:flex;align-items:center;gap:.5rem}.pagination-page-size-label{font-size:.875rem;color:var(--text-secondary);white-space:nowrap}.pagination-page-size-select{padding:.375rem .75rem;border:1px solid var(--border-color);border-radius:4px;background-color:var(--bg-primary);color:var(--text-primary);font-size:.875rem;cursor:pointer;transition:border-color .2s,background-color .2s}.pagination-page-size-select:hover{border-color:var(--primary-color)}.pagination-page-size-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #667eea33}.pagination-buttons{display:flex;align-items:center;gap:.25rem}.pagination-btn{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;padding:0 .5rem;border:1px solid var(--border-color);border-radius:4px;background-color:var(--bg-primary);color:var(--text-primary);font-size:.875rem;cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none}.pagination-btn:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--primary-color);color:var(--primary-color)}.pagination-btn:active:not(:disabled){background-color:var(--bg-active);transform:scale(.98)}.pagination-btn:disabled{opacity:.5;cursor:not-allowed;background-color:var(--bg-secondary)}.pagination-btn-nav{min-width:2rem;padding:0 .5rem}.pagination-btn-page{font-weight:500}.pagination-btn-page.active{background-color:var(--primary-color);color:#fff;border-color:var(--primary-color);font-weight:600}.pagination-btn-page.active:hover{background-color:var(--primary-hover);border-color:var(--primary-hover);color:#fff}.pagination-page-numbers{display:flex;align-items:center;gap:.25rem}.pagination-ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;height:2rem;padding:0 .5rem;color:var(--text-tertiary);font-size:.875rem;-webkit-user-select:none;user-select:none}.pagination-page-info{display:flex;align-items:center;color:var(--text-secondary);font-size:.875rem;white-space:nowrap}.pagination-container.rtl{direction:rtl}.pagination-container.rtl .pagination-info{justify-content:flex-end}.pagination-container.rtl .pagination-controls,.pagination-container.rtl .pagination-page-size,.pagination-container.rtl .pagination-buttons,.pagination-container.rtl .pagination-page-numbers{flex-direction:row-reverse}@media (max-width: 768px){.pagination-container{padding:.75rem}.pagination-controls{flex-direction:column;align-items:stretch;gap:.75rem}.pagination-page-size{justify-content:space-between;width:100%}.pagination-buttons{justify-content:center;flex-wrap:wrap}.pagination-page-info{justify-content:center;width:100%}.pagination-container.rtl .pagination-controls{flex-direction:column}}.tooltip-container{display:inline-block;width:100%}.data-table-tooltip{position:fixed!important;z-index:99999!important;background:#fff!important;background:linear-gradient(135deg,#fff,#f8f9fa)!important;border:1px solid rgba(102,126,234,.2)!important;border-radius:12px;box-shadow:0 8px 32px #0000001f,0 2px 8px #667eea14!important;padding:.75rem 1rem;max-width:400px;animation:tooltipFadeIn .2s ease-out;pointer-events:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-user-select:text;user-select:text;cursor:text;opacity:1!important;visibility:visible!important;display:block!important;color:#1a1a1a!important;top:0;left:0;word-wrap:break-word;line-height:1.5}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(-4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.tooltip-text{display:block;font-size:.875rem;color:#1a1a1a!important;-webkit-user-select:text;user-select:text;cursor:text}.tooltip-content{display:block;color:#1a1a1a!important;-webkit-user-select:text;user-select:text;cursor:text}.location-tooltip-content{display:flex;flex-direction:column;gap:.75rem;min-width:280px;max-width:360px}.location-tooltip-header{display:flex;align-items:flex-start;gap:.75rem;padding-bottom:.75rem;border-bottom:1px solid rgba(102,126,234,.1)}.tooltip-title{flex:1;min-width:0}.tooltip-city{display:block;font-size:1rem;font-weight:700;color:#1a1a1a!important;margin-bottom:.25rem;line-height:1.3}.tooltip-subtitle{display:flex;align-items:center;gap:.375rem;flex-wrap:wrap;font-size:.85rem;color:#666!important;font-weight:500}.tooltip-flag{font-size:1.1rem;line-height:1;filter:drop-shadow(0 1px 1px rgba(0,0,0,.1))}.location-tooltip-details{display:flex;flex-direction:column;gap:.5rem}.tooltip-detail-row{display:flex;align-items:center;gap:.5rem;font-size:.8rem;padding:.25rem 0}.tooltip-label{color:#999!important;font-weight:600;min-width:90px;text-transform:uppercase;font-size:.7rem;letter-spacing:.5px;flex-shrink:0}.tooltip-value{color:#666!important;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.8rem;word-break:break-word;flex:1;-webkit-user-select:text;user-select:text;cursor:text}.tooltip-coords{color:#667eea!important;font-weight:600}.tooltip-isp{color:#666!important;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:text;user-select:text;cursor:text}.data-table-tooltip:before{content:"";position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid rgba(102,126,234,.2);transition:all .2s ease}.data-table-tooltip:after{content:"";position:absolute;bottom:-5px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #ffffff;transition:all .2s ease}.data-table-tooltip.tooltip-below:before{bottom:auto;top:-6px;border-top:none;border-bottom:6px solid rgba(102,126,234,.2)}.data-table-tooltip.tooltip-below:after{bottom:auto;top:-5px;border-top:none;border-bottom:6px solid #ffffff}.data-table-tooltip.tooltip-left:before{bottom:auto;top:50%;left:-6px;right:auto;transform:translateY(-50%);border-left:none;border-right:6px solid rgba(102,126,234,.2);border-top:6px solid transparent;border-bottom:6px solid transparent}.data-table-tooltip.tooltip-left:after{bottom:auto;top:50%;left:-5px;right:auto;transform:translateY(-50%);border-left:none;border-right:6px solid #ffffff;border-top:6px solid transparent;border-bottom:6px solid transparent}.data-table-tooltip.tooltip-right:before{bottom:auto;top:50%;right:-6px;left:auto;transform:translateY(-50%);border-right:none;border-left:6px solid rgba(102,126,234,.2);border-top:6px solid transparent;border-bottom:6px solid transparent}.data-table-tooltip.tooltip-right:after{bottom:auto;top:50%;right:-5px;left:auto;transform:translateY(-50%);border-right:none;border-left:6px solid #ffffff;border-top:6px solid transparent;border-bottom:6px solid transparent}.data-table-container{width:100%;background:var(--bg-elevated);border-radius:12px;border:1px solid var(--border-color);overflow:hidden;box-shadow:var(--shadow-sm)}.data-table-toolbar{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border-color);background:var(--bg-subtle);gap:1rem}.data-table-toolbar-left{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.data-table-toolbar-right{display:flex;align-items:center;gap:.75rem}.data-table-toolbar-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-elevated);color:var(--text-primary);cursor:pointer;font-size:.85rem;font-weight:500;transition:all .2s}.data-table-toolbar-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--primary-color);transform:translateY(-1px)}.data-table-toolbar-btn:active:not(:disabled){transform:translateY(0)}.data-table-toolbar-btn:disabled{opacity:.5;cursor:not-allowed}.data-table-toolbar-btn.primary{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.data-table-toolbar-btn.primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.data-table-toolbar-btn.secondary{background:var(--bg-elevated);color:var(--text-primary)}.data-table-toolbar-btn.danger{background:var(--danger-color);color:#fff;border-color:var(--danger-color)}.data-table-toolbar-btn.danger:hover:not(:disabled){background:#c82333;border-color:#c82333}.data-table-toolbar-btn.active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.data-table-toolbar-btn.active:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}.filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 .35rem;background:#fff3;border-radius:9px;font-size:.7rem;font-weight:600;margin-left:.25rem}.data-table-toolbar-btn svg{width:14px;height:14px}.data-table-toolbar-btn .spinning{animation:spin .8s linear infinite}.data-table-actions-dropdown,.data-table-actions-btn{position:relative}.data-table-actions-btn .actions-chevron{width:12px;height:12px;margin-left:.25rem;transition:transform .2s}.data-table-actions-btn .actions-chevron.open{transform:rotate(180deg)}.data-table-actions-menu{position:absolute;top:calc(100% + .5rem);right:0;min-width:200px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 20px #00000026;z-index:1000;overflow:hidden;animation:dropdownSlideIn .15s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--bg-elevated-alpha)}[dir=rtl] .data-table-actions-menu{right:auto;left:0}@keyframes dropdownSlideIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.actions-menu-item{width:100%;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:transparent;border:none;text-align:left;cursor:pointer;border-radius:0;color:var(--text-primary);font-size:.9rem;transition:background-color .15s}[dir=rtl] .actions-menu-item{text-align:right}.actions-menu-item:hover:not(:disabled){background:var(--bg-hover)}.actions-menu-item:disabled{opacity:.5;cursor:not-allowed}.actions-menu-item.danger{color:var(--danger-color)}.actions-menu-item.danger:hover:not(:disabled){background:var(--danger-bg);color:var(--danger-color)}.actions-menu-icon{width:16px;height:16px;flex-shrink:0;color:var(--text-secondary)}.actions-menu-item.danger .actions-menu-icon{color:var(--danger-color)}.actions-menu-divider{height:1px;background:var(--border-color);margin:.25rem 0}.data-table-search{padding:1rem 1.5rem;border-bottom:1px solid var(--border-color);background:var(--bg-elevated)}.data-table-search-container{display:flex;align-items:center;gap:1rem;justify-content:space-between}.data-table-search-wrapper{position:relative;display:flex;align-items:center;max-width:400px;flex:1}.data-table-search-icon{position:absolute;left:1rem;color:var(--text-tertiary);width:16px;height:16px;pointer-events:none;z-index:1}[dir=rtl] .data-table-search-icon{left:auto;right:1rem}.data-table-search-input{width:100%;padding:.75rem 1rem .75rem 2.75rem;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:.9rem;transition:all .2s}[dir=rtl] .data-table-search-input{padding:.75rem 2.75rem .75rem 1rem}.data-table-search-input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #667eea1a}.data-table-search-input::placeholder{color:var(--text-tertiary)}.data-table-search-clear{position:absolute;right:.75rem;background:transparent;border:none;color:var(--text-tertiary);cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}[dir=rtl] .data-table-search-clear{right:auto;left:.75rem}.data-table-search-clear:hover{background:var(--bg-hover);color:var(--text-primary)}.data-table-search-clear svg{width:14px;height:14px}.data-table-search-hint{position:absolute;right:1rem;display:flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--text-tertiary);pointer-events:none;opacity:.6;transition:opacity .2s}.data-table-search-input:focus~.data-table-search-hint{opacity:0}[dir=rtl] .data-table-search-hint{right:auto;left:3rem}.data-table-search-hint kbd{padding:.15rem .4rem;background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:4px;font-size:.7rem;font-family:monospace;color:var(--text-secondary)}.data-table-search-results{margin-top:.5rem;font-size:.85rem;color:var(--text-secondary);display:flex;align-items:center;gap:.25rem}.data-table-search-total{color:var(--text-tertiary);font-size:.8rem}.data-table-wrapper{overflow-x:auto;overflow-y:visible;position:relative}.data-table{width:100%;border-collapse:collapse;font-size:.9rem}.data-table-header-cell{background:var(--bg-subtle);padding:1rem;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);border-bottom:2px solid var(--border-color);-webkit-user-select:none;user-select:none;position:sticky;top:0;z-index:101}.data-table-header-cell.sortable{cursor:pointer;transition:background-color .2s}.data-table-header-cell.sortable:hover{background:var(--bg-hover)}.data-table-header-cell.sorted{color:var(--primary-color)}.data-table-header-content{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.data-table-sort-icons{display:flex;flex-direction:column;gap:2px;opacity:.3;transition:opacity .2s}.data-table-header-cell.sortable:hover .data-table-sort-icons,.data-table-header-cell.sorted .data-table-sort-icons{opacity:1}.data-table-sort-icons .sort-icon{width:10px;height:10px;color:var(--text-tertiary);transition:color .2s}.data-table-sort-icons .sort-icon.active{color:var(--primary-color)}.data-table-checkbox-cell{padding:.75rem;text-align:center;width:48px}.data-table-checkbox{background:transparent;border:none;cursor:pointer;color:var(--text-tertiary);transition:color .2s;padding:.25rem;display:flex;align-items:center;justify-content:center}.data-table-checkbox:hover{color:var(--primary-color)}.data-table-checkbox svg{width:18px;height:18px}.data-table-row{border-bottom:1px solid var(--border-color);transition:background-color .15s,transform .1s;cursor:pointer}.data-table-row:hover{background:var(--bg-hover)}.data-table-row.selected{background:var(--bg-active)}.data-table-row.selected:hover{background:var(--bg-active);opacity:.9}.data-table-cell{padding:1rem;color:var(--text-primary);vertical-align:middle}.data-table-empty{padding:4rem 2rem;text-align:center}.data-table-empty-content{color:var(--text-tertiary);font-size:.95rem}.data-table-loading-overlay{position:absolute;top:50px;left:0;right:0;bottom:0;background:#ffffffe6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:50;display:flex;align-items:center;justify-content:center;pointer-events:none}.data-table thead{position:relative;z-index:101}.dark-theme .data-table-loading-overlay{background:#000000b3}.dark-theme .data-table-loading-overlay{background:#0009}.data-table-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1rem;color:var(--text-secondary)}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--primary-color);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.data-table-container.rtl,[dir=rtl] .data-table-container{direction:rtl}.data-table-container.rtl .data-table-toolbar,[dir=rtl] .data-table-toolbar,.data-table-container.rtl .data-table-toolbar-left,[dir=rtl] .data-table-toolbar-left,.data-table-container.rtl .data-table-toolbar-right,[dir=rtl] .data-table-toolbar-right,.data-table-container.rtl .data-table-header-content,[dir=rtl] .data-table-header-content{flex-direction:row-reverse}.data-table-container.rtl .data-table-sort-icons,[dir=rtl] .data-table-sort-icons{flex-direction:column-reverse}.data-table-container.rtl .data-table-search,[dir=rtl] .data-table-search{direction:rtl}.data-table-container.rtl .data-table-search-wrapper,[dir=rtl] .data-table-search-wrapper{flex-direction:row-reverse}.data-table-container.rtl .data-table-search-icon,[dir=rtl] .data-table-search-icon{order:2}.data-table-container.rtl .data-table-search-input,[dir=rtl] .data-table-search-input{text-align:right}.data-table-container.rtl .data-table-search-clear,[dir=rtl] .data-table-search-clear{order:1}.data-table-container.rtl .data-table-search-hint,[dir=rtl] .data-table-search-hint{order:3}.data-table-container.rtl .data-table-cell,[dir=rtl] .data-table-cell{text-align:right}.data-table-container.rtl .data-table-cell[style*="text-align: center"],[dir=rtl] .data-table-cell[style*="text-align: center"],.data-table-container.rtl .data-table-checkbox-cell,[dir=rtl] .data-table-checkbox-cell{text-align:center}.dark-theme .data-table-container{box-shadow:0 2px 8px #0003}@media (max-width: 768px){.data-table-header-cell,.data-table-cell{padding:.75rem .5rem;font-size:.85rem}.data-table-header-cell{font-size:.75rem}.data-table-search-container{flex-direction:column;align-items:stretch;gap:.75rem}.data-table-search-wrapper{max-width:100%;width:100%}.data-table-search-container .data-table-actions-dropdown{width:100%}.data-table-search-container .data-table-actions-btn{width:100%;justify-content:center}.data-table-toolbar{flex-wrap:wrap}.data-table-toolbar-left{width:100%}.data-table-search{padding:1rem}}.location-display{display:flex;align-items:center;gap:.5rem;font-size:.875rem}.location-compact{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-width:0;padding:.25rem 0;transition:all .2s ease}.location-compact:hover{transform:translate(2px)}.location-compact:hover .location-icon{color:var(--primary-color, #667eea);transform:scale(1.1)}.location-main{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.location-icon{color:var(--primary-color, #667eea);font-size:.875rem;flex-shrink:0;opacity:.8;transition:all .2s ease}.location-info{display:flex;align-items:center;flex-wrap:wrap;gap:.125rem;min-width:0}.location-city{font-weight:600;color:var(--text-primary, #1a1a1a)}.location-region{color:var(--text-secondary, #666);font-weight:500}.location-country{color:var(--text-secondary, #666)}.location-country-code{font-weight:600;color:var(--text-primary, #1a1a1a);letter-spacing:.5px;font-size:.8rem}.location-fallback{color:var(--text-secondary, #666);font-family:monospace;font-size:.8rem}.country-flag{font-size:1.25rem;line-height:1;flex-shrink:0;filter:drop-shadow(0 1px 1px rgba(0,0,0,.1));transition:transform .2s ease}.country-flag:hover{transform:scale(1.1)}.location-empty{color:var(--text-tertiary, #999);opacity:.7}.location-empty .location-icon{opacity:.5}.location-text{font-style:italic}.location-full{display:flex;flex-direction:column;gap:.75rem;padding:.75rem;background:linear-gradient(135deg,#667eea0d,#764ba20d);border-radius:8px;border:1px solid rgba(102,126,234,.1);transition:all .3s ease}.location-full:hover{background:linear-gradient(135deg,#667eea14,#764ba214);border-color:#667eea33;box-shadow:0 2px 8px #667eea1a}.location-header{display:flex;align-items:flex-start;gap:.75rem}.location-icon-large{color:var(--primary-color, #667eea);font-size:1.25rem;margin-top:.125rem;flex-shrink:0}.location-primary{flex:1;min-width:0}.location-city-large{font-size:1.1rem;font-weight:700;color:var(--text-primary, #1a1a1a);margin-bottom:.25rem;line-height:1.3}.location-secondary{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.location-region-text{color:var(--text-secondary, #666);font-weight:500;font-size:.9rem}.location-country-text{color:var(--text-secondary, #666);font-size:.9rem}.location-details{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem;border-top:1px solid rgba(102,126,234,.1)}.location-detail-item{display:flex;align-items:center;gap:.5rem;font-size:.8rem}.location-detail-label{color:var(--text-tertiary, #999);font-weight:500;min-width:80px;text-transform:uppercase;font-size:.7rem;letter-spacing:.5px}.location-detail-value{color:var(--text-secondary, #666);font-family:Monaco,Menlo,Ubuntu Mono,monospace}.location-coords{color:var(--primary-color, #667eea);font-weight:500}.location-isp{color:var(--text-secondary, #666);max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location-detail-icon{color:var(--text-tertiary, #999);font-size:.75rem;width:14px;text-align:center}@media (max-width: 768px){.location-compact{flex-direction:column;align-items:flex-start;gap:.5rem}.location-info{flex-direction:column;align-items:flex-start;gap:.25rem}.location-city,.location-region,.location-country{display:block}}@keyframes locationPulse{0%,to{opacity:1}50%{opacity:.7}}.location-display.location-updating{animation:locationPulse 1.5s ease-in-out infinite}.location-compact:hover{cursor:help}.agent-list-container{min-height:100vh;background-color:var(--bg-secondary)}.header{background:#fff;border-bottom:1px solid #e0e0e0;padding:1rem 2rem}.header-content{display:flex;justify-content:space-between;align-items:center;max-width:1400px;margin:0 auto}.header h1{margin:0;color:#333;font-size:1.5rem}.header-actions{display:flex;align-items:center;gap:1rem}.nav-link{padding:.5rem .75rem;color:#007bff;text-decoration:none;border-radius:4px;transition:background-color .2s}.nav-link:hover,.nav-link.active{background-color:#e7f3ff}.admin-name{color:#666}.logout-btn{padding:.5rem 1rem;background-color:#dc3545;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.logout-btn:hover{background-color:#c82333}.register-btn{padding:.5rem 1rem;background-color:#28a745;color:#fff;text-decoration:none;border-radius:4px;font-size:.9rem;display:inline-block;transition:background-color .3s}.register-btn:hover{background-color:#218838}.loading{text-align:center;padding:2rem;color:#666}.agents-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.agent-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s;display:block}.agent-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.agent-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e0e0e0}.agent-card-header h3{margin:0;color:#333;font-size:1.2rem}.selection-bar{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:var(--bg-active);border:1px solid var(--primary-color);border-radius:8px;margin-bottom:1rem;animation:slideDown .2s ease-out}.selection-count{font-weight:600;color:var(--primary-color);font-size:.9rem}.selection-actions{display:flex;gap:.75rem}.selection-action-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--danger-color);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:500;transition:background-color .2s,transform .1s}.selection-action-btn:hover{background:#c82333;transform:translateY(-1px)}.selection-action-btn:active{transform:translateY(0)}.selection-action-btn svg{width:14px;height:14px}.status-connecting .status-dot{background:#fbbf24;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.agent-name-cell{display:flex;flex-direction:column;gap:.25rem}.agent-name-cell strong{color:var(--text-primary);font-size:.95rem}.agent-public-ip{font-size:.8rem;color:var(--text-tertiary);font-family:monospace}.agent-card-body{display:flex;flex-direction:column;gap:.5rem}.agent-info{display:flex;gap:.5rem}.agent-info .label{color:#666;font-weight:500}.agent-info .value{color:#333}.no-agents{text-align:center;padding:3rem;color:#666;grid-column:1 / -1}.agent-list-container .data-table-cell[data-column=location]{padding:.75rem 1rem}.agent-list-container .data-table-cell[data-column=location]:hover{background-color:#667eea08}.session-status{padding:16px;border-radius:4px;margin-top:16px}.session-status h3{margin:0 0 12px;font-size:16px;font-weight:600}.session-list{display:flex;flex-direction:column;gap:12px}.session-item{background:#fff;border:1px solid #e0e0e0;border-radius:4px;padding:12px}.session-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.session-type{font-weight:600;color:#333}.session-status-badge{padding:4px 8px;border-radius:4px;color:#fff;font-size:12px;font-weight:600;text-transform:uppercase}.session-details{font-size:14px;color:#666;display:flex;flex-direction:column;gap:4px}.termination-reason{color:#f44336;font-weight:500}.session-status.error{color:#f44336;background:#ffebee;border:1px solid #f44336}.agent-update-status{background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;padding:16px;margin:16px 0}.agent-update-status h3{margin:0 0 12px;font-size:16px;font-weight:600;color:#212529}.update-info{display:flex;flex-direction:column;gap:8px}.version-info{display:flex;align-items:center;gap:8px}.version-info .label{font-weight:500;color:#6c757d;min-width:120px}.version-info .value{color:#212529;font-family:Courier New,monospace;font-size:14px}.update-available{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;margin-top:8px}.update-badge{background:#ffc107;color:#000;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600;text-transform:uppercase}.update-text{color:#856404;font-size:14px}.last-check{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px}.last-check .label{font-weight:500;color:#6c757d;min-width:120px}.last-check .value{color:#495057}.update-status-indicator{margin-top:8px}.status-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600;text-transform:capitalize}.status-idle{background:#e9ecef;color:#495057}.status-checking{background:#cfe2ff;color:#084298}.status-downloading{background:#fff3cd;color:#856404}.status-installing{background:#d1e7dd;color:#0f5132}.status-error{background:#f8d7da;color:#842029}.agent-action-bar{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.action-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.action-btn:disabled{opacity:.5;cursor:not-allowed}.action-btn-primary{background:var(--primary-color);color:#fff}.action-btn-primary:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.action-btn-secondary{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border-color)}.action-btn-secondary:hover:not(:disabled){background:var(--border-color);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.action-btn-danger{background:var(--danger-color);color:#fff}.action-btn-danger:hover:not(:disabled){background:#c82333;transform:translateY(-1px);box-shadow:var(--shadow-sm)}.action-btn svg{font-size:.9rem}@media (max-width: 768px){.agent-action-bar{gap:.5rem}.action-btn{padding:.5rem 1rem;font-size:.85rem}.action-btn span{display:none}.action-btn{padding:.625rem;width:2.5rem;height:2.5rem;justify-content:center}}.agent-metrics-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.metric-card{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;display:flex;align-items:flex-start;gap:1rem;transition:all .3s ease;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.metric-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--border-color);transition:background .3s ease}.metric-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.metric-card-icon{font-size:1.5rem;color:var(--text-secondary);flex-shrink:0;margin-top:.25rem}.metric-card-content{flex:1;min-width:0}.metric-card-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:.5rem}.metric-card-value{font-size:1.5rem;font-weight:700;color:var(--text-primary);line-height:1.2}.metric-card-status.status-online:before{background:#22c55e}.metric-card-status.status-online .metric-card-icon{color:#22c55e}.metric-card-status.status-offline:before{background:#ef4444}.metric-card-status.status-offline .metric-card-icon{color:#ef4444}.metric-card-status.status-connecting:before{background:#fbbf24}.metric-card-status.status-connecting .metric-card-icon{color:#fbbf24}.metric-card-status.status-error:before{background:#ef4444}.metric-card-status.status-error .metric-card-icon{color:#ef4444}.status-text{text-transform:capitalize}.pulse-dot{display:inline-block;width:8px;height:8px;background:#22c55e;border-radius:50%;margin-left:.5rem;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.metric-card-latency.latency-excellent:before{background:#22c55e}.metric-card-latency.latency-excellent .metric-card-icon{color:#22c55e}.metric-card-latency.latency-good:before{background:#fbbf24}.metric-card-latency.latency-good .metric-card-icon{color:#fbbf24}.metric-card-latency.latency-poor:before{background:#ef4444}.metric-card-latency.latency-poor .metric-card-icon{color:#ef4444}.metric-card-latency.latency-unknown:before{background:var(--border-color)}.metric-card-latency.latency-unknown .metric-card-icon{color:var(--text-tertiary)}@media (max-width: 768px){.agent-metrics-cards{grid-template-columns:repeat(2,1fr);gap:1rem}.metric-card{padding:1.25rem}.metric-card-value{font-size:1.25rem}}@media (max-width: 480px){.agent-metrics-cards{grid-template-columns:1fr}}.agent-info-card{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;box-shadow:var(--shadow-sm);transition:all .3s ease}.agent-info-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.agent-info-card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:2px solid var(--border-color)}.agent-info-card-icon{font-size:1.25rem;color:var(--primary-color);display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:rgba(var(--primary-color-rgb, 59, 130, 246),.1);border-radius:8px;flex-shrink:0}.agent-info-card-title{margin:0;font-size:1.125rem;font-weight:600;color:var(--text-primary);flex:1}.agent-info-card-content{color:var(--text-primary)}@media (max-width: 768px){.agent-info-card{padding:1.25rem}.agent-info-card-header{margin-bottom:1rem;padding-bottom:.75rem}.agent-info-card-title{font-size:1rem}}.agent-statistics-section{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;box-shadow:var(--shadow-sm)}.statistics-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:2px solid var(--border-color)}.statistics-header h3{margin:0;font-size:1.125rem;font-weight:600;color:var(--text-primary)}.time-range-selector{padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:.9rem;cursor:pointer;transition:all .2s ease}.time-range-selector:hover{border-color:var(--primary-color)}.time-range-selector:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a}.statistics-loading,.statistics-error,.statistics-empty{text-align:center;padding:3rem;color:var(--text-secondary)}.statistics-error{color:var(--danger-color)}.statistics-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:2rem}.summary-card{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:8px;padding:1rem;text-align:center}.summary-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:.5rem}.summary-value{font-size:1.25rem;font-weight:700;color:var(--text-primary)}.statistics-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.chart-container{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:8px;padding:1rem}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.chart-header h4{margin:0;font-size:.9rem;font-weight:600;color:var(--text-primary)}.chart-legend{display:flex;gap:1rem}.legend-item{font-size:.75rem;font-weight:500;padding:.25rem .5rem;border-radius:4px}.legend-tx{background:#3b82f61a;color:var(--primary-color)}.legend-rx{background:#22c55e1a;color:#22c55e}.chart-wrapper{width:100%;height:200px;position:relative;overflow:hidden}.chart-svg{width:100%;height:100%;display:block}.chart-line{stroke-linecap:round;stroke-linejoin:round}.chart-area{opacity:.6}.bar-chart{display:flex;align-items:flex-end;justify-content:space-between;height:200px;gap:2px}.bar-group{display:flex;align-items:flex-end;gap:2px;flex:1;min-width:0}.bar{flex:1;min-width:2px;border-radius:2px 2px 0 0;transition:opacity .2s ease}.bar:hover{opacity:.8}.bar-tx{background:var(--primary-color)}.bar-rx{background:#22c55e}@media (max-width: 768px){.statistics-charts{grid-template-columns:1fr}.statistics-summary{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.statistics-summary{grid-template-columns:1fr}.statistics-header{flex-direction:column;align-items:flex-start;gap:1rem}}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:1.5rem;flex-wrap:wrap}.page-header-left{display:flex;align-items:flex-start;gap:1rem;flex:1;min-width:0}.page-header-title{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.page-header h2{margin:0;font-size:1.8rem;font-weight:700;color:var(--text-primary)}.back-link{color:var(--primary-color);text-decoration:none;font-weight:500;transition:color .2s;display:inline-flex;align-items:center;white-space:nowrap}.status-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-online{background:#22c55e1a;color:#22c55e}.status-online .status-dot{background:#22c55e;box-shadow:0 0 8px #22c55e80}.status-offline{background:#ef44441a;color:#ef4444}.status-offline .status-dot{background:#ef4444}.status-connecting{background:#fbbf241a;color:#fbbf24}.status-connecting .status-dot{background:#fbbf24}.status-error{background:#ef44441a;color:#ef4444}.status-error .status-dot{background:#ef4444}.error-message{background:var(--danger-bg);color:var(--danger-color);padding:1rem;border-radius:8px;margin-bottom:1.5rem;border:1px solid var(--danger-color)}.dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog{background:var(--bg-elevated);border-radius:12px;padding:2rem;min-width:400px;max-width:500px;border:1px solid var(--border-color);box-shadow:var(--shadow-lg)}.dialog h3{margin-top:0;margin-bottom:1rem;color:var(--text-primary);font-size:1.5rem;font-weight:600}.dialog p{margin:1rem 0;color:var(--text-secondary);line-height:1.6}.dialog p strong{color:var(--text-primary)}.btn-secondary{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border-color);padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s ease}.btn-secondary:hover:not(:disabled){background:var(--border-color);transform:translateY(-1px)}.btn-danger{background:var(--danger-color);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s ease}.btn-danger:hover:not(:disabled){background:#c82333;transform:translateY(-1px)}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.page-content-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:1.5rem;margin-bottom:2rem}.info-grid{display:flex;flex-direction:column;gap:1rem}.info-item{display:flex;flex-direction:column;gap:.5rem}.info-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}.info-value{font-size:1rem;font-weight:500;color:var(--text-primary);word-break:break-word}.info-value-group{display:flex;align-items:center;gap:.5rem}.info-value-group .info-value{flex:1;min-width:0}.code-value{font-family:Courier New,monospace;font-size:.9rem;background:var(--bg-subtle);padding:.5rem;border-radius:4px;border:1px solid var(--border-color)}.copy-btn{background:transparent;border:1px solid var(--border-color);color:var(--text-secondary);padding:.375rem .5rem;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.copy-btn:hover{background:var(--bg-hover);color:var(--primary-color);border-color:var(--primary-color)}.copy-btn svg{font-size:.875rem}.location-coordinates{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.coords-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.coords-label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.coords-value-group{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}.coords-value{font-family:Courier New,monospace;font-size:.875rem;color:var(--text-primary);background:var(--bg-subtle);padding:.375rem .5rem;border-radius:4px;border:1px solid var(--border-color);flex:1;min-width:0}.metadata-json{background-color:var(--bg-subtle);padding:1rem;border-radius:8px;overflow-x:auto;font-size:.875rem;font-family:Courier New,monospace;color:var(--text-primary);border:1px solid var(--border-color);max-height:400px;overflow-y:auto}.statistics-wrapper,.update-status-wrapper,.session-status-wrapper{margin-bottom:2rem}@media (max-width: 1024px){.page-content-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}@media (max-width: 768px){.page-container{padding:1.5rem}.page-header{flex-direction:column;align-items:stretch}.page-header-left{flex-direction:column}.page-header-title{width:100%}.page-content-grid{grid-template-columns:1fr;gap:1.25rem}.dialog{min-width:auto;max-width:90%;margin:1rem}}@media (max-width: 480px){.page-container{padding:1rem}.page-header h2{font-size:1.5rem}.info-value-group{flex-direction:column;align-items:flex-start}.copy-btn{align-self:flex-start}}.page-container{padding:2rem;max-width:1400px;margin:0 auto;min-height:100vh;background-color:var(--bg-secondary)}.chonky-toolbarLeft{width:100%}.page-header-left{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.back-link-btn{background:transparent;border:none;color:var(--primary-color);cursor:pointer;font-weight:500;padding:0;transition:color .2s}.back-link-btn:hover{color:var(--primary-hover);text-decoration:underline}.back-link{color:var(--primary-color);text-decoration:none;font-weight:500;transition:color .2s}.back-link:hover{color:var(--primary-hover);text-decoration:underline}.agent-files-explorer{background:var(--bg-elevated);border-radius:8px;box-shadow:var(--shadow-md);border:1px solid var(--border-color);padding:1rem;min-height:70vh}.agent-files-toolbar{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.75rem;background:var(--bg-subtle);border-radius:8px;border:1px solid var(--border-color);flex-wrap:wrap}.path-chip{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px;padding:.25rem .5rem;border-radius:999px;background:#667eea1a;color:var(--primary-color);max-width:55vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.busy{font-size:12px;color:var(--text-secondary)}.spacer{flex:1}.search-input{width:280px;max-width:50vw;padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:8px;outline:none;background:var(--bg-primary);color:var(--text-primary);transition:border-color .2s,box-shadow .2s}.search-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #667eea26}.dialog{background:var(--bg-elevated);border-radius:8px;padding:2rem;min-width:400px;max-width:500px;border:1px solid var(--border-color);box-shadow:var(--shadow-lg)}.dialog h3{margin-top:0;margin-bottom:1rem;color:var(--text-primary);font-size:1.5rem}.dialog p{margin:1rem 0;color:var(--text-secondary);line-height:1.5}.dialog-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.dialog-close{background:transparent;border:none;cursor:pointer;font-size:1.5rem;color:var(--text-secondary);padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background .2s,color .2s}.dialog-close:hover{background:var(--bg-hover);color:var(--text-primary)}.dialog-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.btn-primary{background:var(--primary-color);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background .2s}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border-color);padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background .2s}.btn-secondary:hover:not(:disabled){background:var(--border-color)}.editor-dialog{width:min(1000px,92vw);height:min(80vh,800px);max-width:none;display:flex;flex-direction:column;overflow:hidden}.editor-textarea{flex:1;width:100%;border:1px solid var(--border-color);border-radius:4px;outline:none;padding:1rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px;line-height:1.4;resize:none;background:var(--bg-primary);color:var(--text-primary);margin-bottom:1rem}.editor-textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #667eea26}.file-details-dialog{min-width:500px;max-width:600px}.file-details-grid{display:grid;grid-template-columns:140px 1fr;gap:.5rem 1rem;font-size:14px;margin:1rem 0;padding:1rem 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.file-details-grid .k{color:var(--text-secondary);font-weight:500}.file-details-grid .v{color:var(--text-primary);word-break:break-word}.file-details-grid .v.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px}.chonky-chonkyRoot{background:var(--bg-elevated);color:var(--text-primary)}.chonky-fileListWrapper{background:var(--bg-elevated)}.chonky-fileEntry{background:var(--bg-elevated);color:var(--text-primary)}.chonky-fileEntry:hover{background:var(--bg-hover)}.chonky-fileEntry-selected{background:var(--bg-active);color:var(--text-primary)}.chonky-navbar{background:var(--bg-elevated);border-color:var(--border-color)}.chonky-navbarButton{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-color)}.chonky-navbarButton:hover{background:var(--bg-hover);color:var(--text-primary)}.chonky-contextMenu{background:var(--bg-elevated);border:1px solid var(--border-color);box-shadow:var(--shadow-lg)}.chonky-contextMenuButton{background:var(--bg-elevated);color:var(--text-primary)}.chonky-contextMenuButton:hover{background:var(--bg-hover);color:var(--text-primary)}.chonky-fileEntryIcon,.chonky-fileEntryText{color:var(--text-primary)}.chonky-fileEntrySubtitle,.chonky-fileEntryProperty{color:var(--text-secondary)}.chonky-listFileEntry{background:var(--bg-elevated);border-bottom:1px solid var(--border-color);color:var(--text-primary)}.chonky-listFileEntry:hover{background:var(--bg-hover)}.chonky-listFileEntry-selected{background:var(--bg-active);color:var(--text-primary)}.chonky-gridFileEntry{background:var(--bg-elevated);border:1px solid var(--border-color);color:var(--text-primary)}.chonky-gridFileEntry:hover{background:var(--bg-hover);border-color:var(--primary-color)}.chonky-gridFileEntry-selected{background:var(--bg-active);border-color:var(--primary-color);color:var(--text-primary)}.chonky-actionButton{background:var(--bg-primary);color:var(--text-primary);border-color:var(--border-color)}.chonky-actionButton:hover{background:var(--bg-hover);color:var(--primary-color);border-color:var(--primary-color)}.chonky-actionButton:active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.chonky-select,.chonky-dropdown{background:var(--bg-elevated);border-color:var(--border-color);color:var(--text-primary)}.chonky-select option,.chonky-dropdown option{background:var(--bg-elevated);color:var(--text-primary)}.chonky-searchInput{background:var(--bg-primary);border-color:var(--border-color);color:var(--text-primary)}.chonky-searchInput:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #667eea26}[data-theme=dark] .chonky-searchInput:focus{box-shadow:0 0 0 3px #818cf826}.chonky-emptyFolder,.chonky-loading{color:var(--text-secondary)}.chonky-fileEntry:focus,.chonky-fileEntry:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.chonky-toolbarSeparator{background:var(--border-color)}.chonky-navbarSeparator{color:var(--border-color)}.agent-files-explorer .MuiBox-root.chonky-chonkyRoot{background:var(--bg-elevated);color:var(--text-primary)}.agent-files-explorer .MuiBox-root.chonky-chonkyRoot *,.chonky-fileEntry-name{color:var(--text-primary)}.chonky-fileEntry-size,.chonky-fileEntry-date{color:var(--text-secondary)}.chonky-toolbarWrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;position:relative;border-bottom:1px solid var(--border-color);background:var(--bg-elevated)}.chonky-toolbarContainer{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem;min-height:auto;align-items:center}.chonky-toolbarContainer>*{flex-shrink:0}.chonky-toolbarContainer button{padding:.5rem .75rem;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;min-height:36px}.chonky-toolbarContainer button:hover{background:var(--bg-hover);border-color:var(--primary-color);color:var(--primary-color)}.chonky-toolbarContainer button:active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}.chonky-toolbarContainer .chonky-toolbar-group{display:flex;gap:.25rem;flex-wrap:wrap}.chonky-toolbarRight{display:flex;flex-wrap:wrap!important;gap:.5rem;align-items:center;min-height:38px;max-width:100%;overflow:hidden}.chonky-toolbarRight>*{flex-shrink:0;max-width:100%}.chonky-fileListWrapper{height:400px!important;max-height:100%}.chonky-toolbarRight button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}@media (max-width: 1024px){.chonky-toolbarContainer{gap:.375rem;padding:.5rem}.chonky-toolbarContainer button{padding:.375rem .5rem;font-size:.8125rem;min-height:32px}.chonky-toolbarRight{gap:.375rem}}@media (max-width: 768px){.chonky-toolbarContainer{flex-direction:column;align-items:stretch;gap:.5rem}.chonky-toolbarContainer button{width:100%;justify-content:flex-start;padding:.5rem .75rem;font-size:.875rem;min-height:40px}.chonky-toolbarContainer .chonky-toolbar-group{flex-direction:column;gap:.25rem}.chonky-toolbarContainer .chonky-toolbar-group button{width:100%}.chonky-toolbarRight{flex-direction:row;flex-wrap:wrap;justify-content:flex-start;width:100%}.agent-files-toolbar{flex-direction:column;align-items:stretch;gap:.75rem}.path-chip{max-width:100%;text-align:center}.search-input{width:100%;max-width:100%}}@media (max-width: 1024px) and (min-width: 769px){.chonky-toolbarRight{flex-wrap:wrap;max-width:100%}.chonky-toolbarRight>*{flex-shrink:1;min-width:0}}@media (max-width: 480px){.chonky-toolbarContainer{padding:.375rem;gap:.375rem}.chonky-toolbarContainer button{padding:.5rem;font-size:.8125rem;min-height:44px;touch-action:manipulation}.chonky-toolbarContainer button[data-action-id*=chmod],.chonky-toolbarContainer button[data-action-id*=extract]{display:none}.chonky-toolbarContainer button:active{transform:scale(.98);transition:transform .1s ease}.chonky-toolbarContainer button:before{width:18px;height:18px;margin-right:.5rem}.chonky-toolbarRight{flex-direction:column;align-items:stretch;gap:.375rem}.chonky-toolbarRight>*{width:100%}.agent-files-toolbar{padding:.5rem;gap:.5rem}.path-chip{font-size:11px;padding:.25rem .375rem}}@media (hover: none) and (pointer: coarse){.chonky-toolbarContainer button{min-height:48px;padding:.625rem .875rem}.chonky-toolbarContainer button:hover{background:var(--bg-primary);border-color:var(--border-color);color:var(--text-primary)}.chonky-toolbarContainer button:active{background:var(--primary-color);color:#fff;border-color:var(--primary-color);transform:scale(.96)}}@media (prefers-contrast: high){.chonky-toolbarContainer button{border-width:2px;border-color:var(--text-primary)}.chonky-toolbarContainer button:hover,.chonky-toolbarContainer button:active{border-color:var(--text-primary);border-width:2px}}@media (prefers-reduced-motion: reduce){.chonky-toolbarContainer button{transition:none}.chonky-toolbarContainer button:active{transform:none}}.chonky-toolbarContainer button:focus{outline:2px solid var(--primary-color);outline-offset:2px;z-index:1}.chonky-toolbarContainer button:focus:not(:focus-visible){outline:none}.chonky-toolbarContainer button:disabled{opacity:.6;cursor:not-allowed;background:var(--bg-subtle);color:var(--text-tertiary)}.chonky-toolbarContainer button:disabled:hover,.chonky-toolbarContainer button:disabled:active{background:var(--bg-subtle);color:var(--text-tertiary);transform:none}.chonky-toolbarWrapper:after{content:"";position:absolute;top:0;right:0;bottom:0;width:20px;background:linear-gradient(to left,var(--bg-elevated-alpha),transparent);pointer-events:none;opacity:0;transition:opacity .3s ease}.chonky-toolbarWrapper:hover:after{opacity:1}.agent-files-explorer .chonky-toolbarWrapper{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}.agent-files-explorer .chonky-toolbarWrapper::-webkit-scrollbar{height:6px}.agent-files-explorer .chonky-toolbarWrapper::-webkit-scrollbar-track{background:var(--bg-subtle);border-radius:3px}.agent-files-explorer .chonky-toolbarWrapper::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.agent-files-explorer .chonky-toolbarWrapper::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.chonky-list-header{display:flex;align-items:center;gap:0;padding:6px 8px;border-bottom:1px solid var(--border-color);background:var(--bg-elevated);color:var(--text-secondary);font-size:12px;font-weight:600;-webkit-user-select:none;user-select:none}.chonky-list-header-icon{width:28px;flex:0 0 28px}.chonky-list-header-cell{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:inherit;font:inherit;cursor:pointer;padding:2px 8px;text-align:left;flex:1 1 300px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;transition:color .2s}.chonky-list-header-cell.prop{flex:0 1 150px}.chonky-list-header-cell:hover{color:var(--primary-color)}.chonky-list-header-cell.active,[data-theme=dark] .chonky-chonkyRoot,[data-theme=dark] .chonky-chonkyRoot *{color:var(--text-primary)}[data-theme=dark] .chonky-chonkyRoot{background:var(--bg-elevated);border-color:var(--border-color)}[data-theme=dark] .chonky-fileListWrapper,[data-theme=dark] .chonky-fileList{background:var(--bg-elevated)}[data-theme=dark] .chonky-fileEntry{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-color)}[data-theme=dark] .chonky-fileEntry:hover{background:var(--bg-hover)}[data-theme=dark] .chonky-fileEntry-selected{background:var(--bg-active);color:var(--text-primary)}[data-theme=dark] .chonky-fileEntry-selected:hover{background:var(--bg-active)}[data-theme=dark] .chonky-navbar{background:var(--bg-elevated);border-color:var(--border-color)}[data-theme=dark] .chonky-navbarButton{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-color)}[data-theme=dark] .chonky-navbarButton:hover{background:var(--bg-hover);color:var(--text-primary)}[data-theme=dark] .chonky-toolbarWrapper{background:var(--bg-elevated);border-color:var(--border-color)}[data-theme=dark] .chonky-toolbarContainer{background:var(--bg-elevated)}[data-theme=dark] .chonky-contextMenu{background:var(--bg-elevated);border:1px solid var(--border-color);box-shadow:var(--shadow-lg)}[data-theme=dark] .chonky-contextMenuButton{background:var(--bg-elevated);color:var(--text-primary)}[data-theme=dark] .chonky-contextMenuButton:hover{background:var(--bg-hover);color:var(--text-primary)}[data-theme=dark] .chonky-fileEntryIcon{color:var(--text-primary)}[data-theme=dark] .chonky-fileEntryIcon svg{fill:var(--text-primary)}[data-theme=dark] .chonky-fileEntryText{color:var(--text-primary)}[data-theme=dark] .chonky-fileEntrySubtitle,[data-theme=dark] .chonky-fileEntryProperty{color:var(--text-secondary)}[data-theme=dark] .MuiBox-root.chonky-chonkyRoot{background:var(--bg-elevated);color:var(--text-primary)}[data-theme=dark] .MuiBox-root.chonky-chonkyRoot *{color:var(--text-primary)}[data-theme=dark] .chonky-listFileEntry{background:var(--bg-elevated);border-bottom:1px solid var(--border-color);color:var(--text-primary)}[data-theme=dark] .chonky-listFileEntry:hover{background:var(--bg-hover)}[data-theme=dark] .chonky-listFileEntry-selected{background:var(--bg-active);color:var(--text-primary)}[data-theme=dark] .chonky-listFileEntry-selected:hover{background:var(--bg-active)}[data-theme=dark] .chonky-gridFileEntry{background:var(--bg-elevated);border:1px solid var(--border-color);color:var(--text-primary)}[data-theme=dark] .chonky-gridFileEntry:hover{background:var(--bg-hover);border-color:var(--primary-color)}[data-theme=dark] .chonky-gridFileEntry-selected{background:var(--bg-active);border-color:var(--primary-color);color:var(--text-primary)}[data-theme=dark] .chonky-actionButton{background:var(--bg-primary);color:var(--text-primary);border-color:var(--border-color)}[data-theme=dark] .chonky-actionButton:hover{background:var(--bg-hover);color:var(--primary-color);border-color:var(--primary-color)}[data-theme=dark] .chonky-actionButton:active{background:var(--primary-color);color:#fff;border-color:var(--primary-color)}[data-theme=dark] .chonky-select,[data-theme=dark] .chonky-dropdown{background:var(--bg-elevated);border-color:var(--border-color);color:var(--text-primary)}[data-theme=dark] .chonky-select option,[data-theme=dark] .chonky-dropdown option{background:var(--bg-elevated);color:var(--text-primary)}[data-theme=dark] .chonky-searchInput{background:var(--bg-primary);border-color:var(--border-color);color:var(--text-primary)}[data-theme=dark] .chonky-searchInput:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #818cf826}[data-theme=dark] .chonky-fileListWrapper::-webkit-scrollbar-track{background:var(--bg-subtle)}[data-theme=dark] .chonky-fileListWrapper::-webkit-scrollbar-thumb{background:var(--border-color)}[data-theme=dark] .chonky-fileListWrapper::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}[data-theme=dark] .chonky-emptyFolder,[data-theme=dark] .chonky-loading{color:var(--text-secondary)}[data-theme=dark] .chonky-fileEntry:focus,[data-theme=dark] .chonky-fileEntry:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}[data-theme=dark] .chonky-toolbarSeparator{background:var(--border-color)}[data-theme=dark] .chonky-navbarSeparator{color:var(--border-color)}[data-theme=dark] .agent-files-explorer .MuiBox-root{background:var(--bg-elevated);color:var(--text-primary)}[data-theme=dark] .agent-files-explorer .MuiBox-root *{color:inherit}[data-theme=dark] .agent-files-explorer .chonky-chonkyRoot{background:var(--bg-elevated);color:var(--text-primary)}[data-theme=dark] .agent-files-explorer .chonky-chonkyRoot *,[data-theme=dark] .chonky-fileEntry-name{color:var(--text-primary)}[data-theme=dark] .chonky-fileEntry-size,[data-theme=dark] .chonky-fileEntry-date{color:var(--text-secondary)}.agent-files-explorer [class*=chonky]{color:var(--text-primary)}.agent-files-explorer [class*=chonky] *{color:inherit}.agent-files-explorer [class*=chonky]{background-color:var(--bg-elevated)}.agent-files-explorer [class*=chonky]{border-color:var(--border-color)}.agent-files-explorer .MuiBox-root,.agent-files-explorer .MuiButton-root,.agent-files-explorer .MuiIconButton-root{color:var(--text-primary)}[data-theme=dark] .agent-files-explorer .MuiBox-root{background-color:var(--bg-elevated);color:var(--text-primary)}[data-theme=dark] .agent-files-explorer .MuiButton-root{color:var(--text-primary)}[data-theme=dark] .agent-files-explorer .MuiButton-root:hover{background-color:var(--bg-hover)}[data-theme=dark] .agent-files-explorer .MuiIconButton-root{color:var(--text-primary)}[data-theme=dark] .agent-files-explorer .MuiIconButton-root:hover{background-color:var(--bg-hover)}.agent-files-explorer .chonky-fileList .chonky-fileEntry{background:var(--bg-elevated);color:var(--text-primary)}.agent-files-explorer .chonky-fileList .chonky-fileEntry:hover{background:var(--bg-hover)}.agent-files-explorer .chonky-fileList .chonky-fileEntry-selected{background:var(--bg-active);color:var(--text-primary)}.agent-files-explorer .chonky-gridFileEntry{background:var(--bg-elevated);border-color:var(--border-color);color:var(--text-primary)}.agent-files-explorer .chonky-gridFileEntry:hover{background:var(--bg-hover);border-color:var(--primary-color)}.agent-files-explorer .chonky-gridFileEntry-selected{background:var(--bg-active);border-color:var(--primary-color);color:var(--text-primary)}.agent-files-explorer .chonky-fileListWrapper::-webkit-scrollbar-track{background:var(--bg-subtle)}.agent-files-explorer .chonky-fileListWrapper::-webkit-scrollbar-thumb{background:var(--border-color)}.agent-files-explorer .chonky-fileListWrapper::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.agent-files-explorer .chonky-chonkyRoot,.agent-files-explorer .chonky-chonkyRoot *,.agent-files-explorer .chonky-chonkyRoot .chonky-fileEntry-name,.agent-files-explorer .chonky-chonkyRoot .chonky-fileEntryText{color:var(--text-primary)}.agent-files-explorer .chonky-chonkyRoot .chonky-fileEntrySubtitle,.agent-files-explorer .chonky-chonkyRoot .chonky-fileEntryProperty,.agent-files-explorer .chonky-chonkyRoot .chonky-fileEntry-size,.agent-files-explorer .chonky-chonkyRoot .chonky-fileEntry-date{color:var(--text-secondary)}/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility,.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.ssh-terminal-container{width:100%;height:100%;display:flex;flex-direction:column;background:#1e1e1e;border-radius:4px;overflow:hidden}.ssh-terminal-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:6px 8px;border-bottom:1px solid rgba(255,255,255,.08);background:#141414}.ssh-terminal-toolbar-spacer{flex:1}.ssh-terminal-toolbar-btn{background:#1e1e1e;color:#d4d4d4;border:1px solid rgba(255,255,255,.14);border-radius:4px;padding:4px 10px;outline:none;cursor:pointer;font-size:12px}.ssh-terminal-toolbar-btn:hover{border-color:#ffffff40}.ssh-terminal{width:100%;height:100%;padding:8px;box-sizing:border-box}.ssh-terminal .xterm{height:100%}.ssh-terminal .xterm-viewport{background:#1e1e1e}.ssh-terminal-hterm{width:100%;height:100%;padding:8px;box-sizing:border-box}.ssh-terminal-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;z-index:9999;border-radius:0}.agent-terminal-container{display:flex;flex-direction:column;height:100vh;width:100%;background:#1e1e1e;color:#d4d4d4;padding:20px;box-sizing:border-box}.agent-terminal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid #3e3e3e}.agent-terminal-title{display:flex;align-items:center;gap:15px}.agent-terminal-title h2{margin:0;font-size:18px;font-weight:600;color:#d4d4d4}.agent-terminal-controls{display:flex;gap:10px;align-items:center}.ssh-terminal-type-select{padding:6px 12px;background:#2d2d2d;border:1px solid #3e3e3e;border-radius:4px;color:#d4d4d4;font-size:14px;cursor:pointer}.ssh-terminal-type-select:disabled{opacity:.5;cursor:not-allowed}.ssh-connect-btn,.ssh-close-btn{padding:8px 16px;background:#007acc;border:none;border-radius:4px;color:#fff;font-size:14px;cursor:pointer;transition:background .2s}.ssh-connect-btn:hover:not(:disabled){background:#005a9e}.ssh-connect-btn:disabled{opacity:.5;cursor:not-allowed}.ssh-close-btn{background:#d32f2f}.ssh-close-btn:hover{background:#b71c1c}.ssh-error{padding:12px;background:#d32f2f;color:#fff;border-radius:4px;margin-bottom:15px}.ssh-terminal-wrapper{flex:1;display:flex;flex-direction:column;min-height:0}.ssh-info{padding:20px;text-align:center;color:#888;background:#2d2d2d;border-radius:4px;margin-top:20px}.ssh-info.ssh-warning{background:#4a2c1a;color:#ff9800}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-online{background:#4caf5033;color:#4caf50}.status-online .status-dot{background:#4caf50}.status-offline{background:#9e9e9e33;color:#9e9e9e}.status-offline .status-dot{background:#9e9e9e}.loading{display:flex;align-items:center;justify-content:center;height:100%;color:#888;font-size:16px}.error-message{padding:20px;background:#d32f2f;color:#fff;border-radius:4px;margin:20px}.statistics-container{min-height:100vh;background:var(--bg-secondary)}.statistics-content{max-width:1400px;margin:0 auto;padding:20px}.time-range-selector{margin-bottom:20px;display:flex;align-items:center;gap:10px}.time-range-selector label{font-weight:600;color:var(--text-primary)}.time-range-selector select{padding:8px 12px;border:1px solid var(--border-color);border-radius:4px;font-size:14px;background:var(--bg-primary);color:var(--text-primary);transition:border-color .2s}.time-range-selector select:focus{outline:none;border-color:var(--primary-color)}.overview-section,.agent-stats-section{background:var(--bg-elevated);border-radius:8px;padding:24px;margin-bottom:24px;box-shadow:var(--shadow-md);border:1px solid var(--border-color)}.overview-section h2,.agent-stats-section h2{margin-top:0;margin-bottom:20px;color:var(--text-primary)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:20px}.stat-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;padding:16px;text-align:center;transition:box-shadow .2s,transform .2s}.stat-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.stat-label{font-size:12px;color:var(--text-secondary);text-transform:uppercase;margin-bottom:8px;font-weight:600}.stat-value{font-size:24px;font-weight:700;color:var(--text-primary)}.agent-selector{margin-bottom:20px;display:flex;align-items:center;gap:10px}.agent-selector label{font-weight:600;color:var(--text-primary)}.agent-selector select{flex:1;max-width:400px;padding:8px 12px;border:1px solid var(--border-color);border-radius:4px;font-size:14px;background:var(--bg-primary);color:var(--text-primary);transition:border-color .2s}.agent-selector select:focus{outline:none;border-color:var(--primary-color)}.agent-stats-details h3{margin-top:24px;margin-bottom:16px;color:var(--text-primary)}.stats-table{overflow-x:auto;margin-top:16px}.stats-table table{width:100%;border-collapse:collapse;font-size:14px}.stats-table th,.stats-table td{padding:12px;text-align:left;border-bottom:1px solid var(--border-color)}.stats-table th{background:var(--bg-subtle);font-weight:600;color:var(--text-primary);text-transform:uppercase;font-size:12px}.stats-table td{color:var(--text-primary)}.stats-table tr:hover{background:var(--bg-hover)}.error-message{background:var(--danger-bg);color:var(--danger-color);padding:12px;border-radius:4px;margin-bottom:20px;border:1px solid var(--danger-color)}.loading{text-align:center;padding:40px;color:var(--text-secondary)}.register-agent-container{min-height:100vh;background:var(--bg-secondary);padding:2rem 1rem;display:flex;align-items:center;justify-content:center}.register-agent-content{width:100%;max-width:700px;display:flex;flex-direction:column;gap:2rem}.register-agent-header{text-align:center;margin-bottom:1rem}.header-icon-wrapper{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));margin-bottom:1.5rem;box-shadow:var(--shadow-md);position:relative;animation:iconPulse 2s ease-in-out infinite}@keyframes iconPulse{0%,to{transform:scale(1);box-shadow:var(--shadow-md)}50%{transform:scale(1.05);box-shadow:var(--shadow-lg)}}.header-icon{font-size:2.5rem;color:#fff}.register-agent-header h1{margin:0 0 1rem;font-size:2.5rem;font-weight:700;color:var(--text-primary);background:linear-gradient(135deg,var(--text-primary),var(--text-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-description{color:var(--text-secondary);font-size:1.1rem;line-height:1.6;max-width:600px;margin:0 auto}.register-agent-card{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:16px;padding:3rem;box-shadow:var(--shadow-lg);transition:transform .3s ease,box-shadow .3s ease}.register-agent-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.pairing-form{display:flex;flex-direction:column;gap:2rem}.error-message{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:var(--danger-bg);color:var(--danger-color);border-radius:8px;border:1px solid var(--danger-color);font-size:.95rem;animation:slideDown .3s ease-out}.error-message svg{font-size:1.1rem}.pairing-code-section{display:flex;flex-direction:column;gap:1rem;position:relative}.pairing-code-label{display:flex;align-items:center;gap:.75rem;font-size:.95rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.label-icon{color:var(--text-secondary);font-size:1.1rem}.code-display{display:flex;gap:.75rem;justify-content:center;align-items:center;padding:1.5rem;background:var(--bg-primary);border:2px solid var(--border-color);border-radius:12px;outline:none;transition:all .3s ease;box-shadow:var(--shadow-sm);cursor:text;min-height:100px;position:relative}.code-display:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #667eea1a,var(--shadow-md)}[data-theme=dark] .code-display:focus{box-shadow:0 0 0 3px #818cf81a,var(--shadow-md)}.code-display:focus .code-digit.next{border-color:var(--primary-color)}.code-display:disabled,.code-display[aria-disabled=true]{opacity:.6;cursor:not-allowed;pointer-events:none}.code-hint{margin:0;font-size:.875rem;color:var(--text-secondary);text-align:center}.code-digit{width:60px;height:70px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:2px solid var(--border-color);border-radius:12px;font-size:2rem;font-weight:700;font-family:Courier New,Monaco,Menlo,monospace;color:var(--text-primary);transition:all .3s ease;box-shadow:var(--shadow-sm);cursor:text;-webkit-user-select:none;user-select:none;position:relative}.code-digit.filled{background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));border-color:var(--primary-color);color:#fff;transform:scale(1.05);box-shadow:var(--shadow-md);animation:digitPop .3s ease-out}@keyframes digitPop{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1.05)}}.code-digit.next{border-color:var(--primary-color);box-shadow:0 0 0 3px #667eea33;animation:nextPulse 1.5s ease-in-out infinite;position:relative}.code-digit.next:after{content:"";position:absolute;bottom:12px;left:50%;transform:translate(-50%);width:3px;height:24px;background:var(--primary-color);border-radius:2px;animation:cursorBlink 1s ease-in-out infinite}@keyframes cursorBlink{0%,50%{opacity:1}51%,to{opacity:0}}@keyframes nextPulse{0%,to{box-shadow:0 0 0 3px #667eea33}50%{box-shadow:0 0 0 6px #667eea1a}}[data-theme=dark] .code-digit.next{animation:nextPulseDark 1.5s ease-in-out infinite}[data-theme=dark] .code-digit.next:after{background:var(--primary-color)}@keyframes nextPulseDark{0%,to{box-shadow:0 0 0 3px #818cf833}50%{box-shadow:0 0 0 6px #818cf81a}}.submit-btn{width:100%;padding:1.125rem 2rem;font-size:1.1rem;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));border:none;border-radius:12px;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:.75rem;box-shadow:var(--shadow-md);position:relative;overflow:hidden}.submit-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.submit-btn:hover:not(:disabled):before{left:100%}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg)}.submit-btn:active:not(:disabled){transform:translateY(0)}.submit-btn:disabled{background:var(--bg-hover);color:var(--text-tertiary);cursor:not-allowed;box-shadow:none}.submit-btn .spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.success-state{text-align:center;padding:1rem 0;animation:fadeInUp .5s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.success-icon-wrapper{position:relative;display:inline-flex;align-items:center;justify-content:center;margin-bottom:1.5rem}.success-icon{font-size:5rem;color:#22c55e;z-index:2;position:relative;animation:successScale .6s ease-out}@keyframes successScale{0%{transform:scale(0)}50%{transform:scale(1.2)}to{transform:scale(1)}}.success-ripple{position:absolute;width:100px;height:100px;border-radius:50%;background:#22c55e33;animation:ripple 1.5s ease-out infinite}@keyframes ripple{0%{transform:scale(.8);opacity:1}to{transform:scale(2);opacity:0}}.success-state h2{margin:0 0 1.5rem;font-size:2rem;color:var(--text-primary);font-weight:700}.success-details{background:var(--bg-subtle);border-radius:12px;padding:1.5rem;margin-bottom:1.5rem;border:1px solid var(--border-color)}.success-detail-item{display:flex;justify-content:space-between;align-items:center;gap:1rem}.detail-label{color:var(--text-secondary);font-weight:500}.detail-value{color:var(--text-primary);font-weight:600;font-family:Courier New,Monaco,Menlo,monospace;font-size:1.1rem}.success-redirect{display:flex;align-items:center;justify-content:center;gap:.75rem;color:var(--text-secondary);font-size:.95rem}.success-redirect .spinner{animation:spin 1s linear infinite}.help-section{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:16px;padding:2rem;box-shadow:var(--shadow-sm)}.help-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem;color:var(--text-primary)}.help-header svg{font-size:1.5rem;color:var(--primary-color)}.help-header h3{margin:0;font-size:1.5rem;font-weight:600;color:var(--text-primary)}.help-steps{display:flex;flex-direction:column;gap:1.5rem}.help-step{display:flex;gap:1.25rem;align-items:flex-start}.step-number{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));color:#fff;border-radius:50%;font-weight:700;font-size:1.1rem;box-shadow:var(--shadow-sm)}.step-content{flex:1;padding-top:.25rem}.step-content h4{margin:0 0 .5rem;font-size:1.1rem;font-weight:600;color:var(--text-primary)}.step-content p{margin:0;color:var(--text-secondary);line-height:1.6}@media (max-width: 768px){.register-agent-container{padding:1rem}.register-agent-header h1{font-size:2rem}.header-description{font-size:1rem}.register-agent-card{padding:2rem 1.5rem}.code-digit{width:50px;height:60px;font-size:1.5rem}.code-display{gap:.5rem;padding:1.25rem;min-height:90px}.help-section{padding:1.5rem}.help-steps{gap:1.25rem}}@media (max-width: 480px){.header-icon-wrapper{width:60px;height:60px}.header-icon{font-size:2rem}.register-agent-header h1{font-size:1.75rem}.code-digit{width:45px;height:55px;font-size:1.25rem}.code-display{gap:.4rem;padding:1rem;min-height:80px}}[data-theme=dark] .code-digit{background:var(--bg-primary)}[data-theme=dark] .code-digit.filled{background:linear-gradient(135deg,var(--primary-color),var(--primary-hover))}[data-theme=dark] .success-icon{color:#4ade80}[data-theme=dark] .success-ripple{background:#4ade8033}.tenant-select-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.tenant-select-card{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000001a;padding:40px;width:100%;max-width:900px}.tenant-select-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid #f0f0f0}.tenant-select-header h1{margin:0;color:#333;font-size:28px;font-weight:600}.logout-btn{background:#dc3545;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.logout-btn:hover{background:#c82333}.tenant-list{margin-top:20px}.no-tenants{text-align:center;padding:60px 20px;color:#666}.no-tenants p{margin:10px 0;font-size:16px}.no-tenants p:first-child{font-size:18px;font-weight:500;color:#333}.tenants-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.tenant-card{background:#f8f9fa;border:2px solid #e9ecef;border-radius:10px;padding:24px;cursor:pointer;transition:all .3s ease;position:relative}.tenant-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #0000001a;border-color:#667eea}.tenant-card.selected{border-color:#667eea;background:#f0f4ff;box-shadow:0 4px 12px #667eea4d}.tenant-card-content h2{margin:0 0 8px;color:#333;font-size:20px;font-weight:600}.tenant-slug{margin:0 0 16px;color:#666;font-size:14px;font-family:Courier New,monospace}.tenant-meta{display:flex;gap:10px;flex-wrap:wrap}.tenant-status,.tenant-role{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500;text-transform:uppercase}.tenant-status{background:#d4edda;color:#155724}.tenant-status.suspended{background:#fff3cd;color:#856404}.tenant-status.deleted{background:#f8d7da;color:#721c24}.tenant-role{background:#cfe2ff;color:#084298}.tenant-role.role-owner{background:#e7d4ff;color:#5a1e91}.tenant-role.role-admin{background:#d1ecf1;color:#0c5460}.tenant-role.role-operator{background:#d4edda;color:#155724}.tenant-role.role-viewer{background:#e2e3e5;color:#383d41}.team-container{padding:2rem;max-width:1200px;margin:0 auto;min-height:100vh;background-color:var(--bg-secondary)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-header h2{margin:0;font-size:1.8rem;color:var(--text-primary)}.invite-btn{background:var(--primary-color);color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;cursor:pointer;font-size:1rem;transition:background .2s}.invite-btn:hover{background:var(--primary-hover)}.team-section{margin-bottom:3rem}.team-section h3{margin-bottom:1rem;color:var(--text-primary);font-size:1.3rem}.members-list,.invites-list{display:flex;flex-direction:column;gap:.75rem}.member-card,.invite-card{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:8px;padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;transition:box-shadow .2s}.member-card:hover,.invite-card:hover{box-shadow:var(--shadow-md)}.member-info{flex:1}.member-name{font-weight:600;color:var(--text-primary);margin-bottom:.25rem}.member-email{color:var(--text-secondary);font-size:.9rem}.member-actions{display:flex;gap:1rem;align-items:center}.role-badge{padding:.4rem .8rem;border-radius:4px;font-size:.85rem;font-weight:600;text-transform:uppercase}.remove-btn,.revoke-btn{background:var(--danger-color);color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background .2s}.remove-btn:hover,.revoke-btn:hover{opacity:.9}.invite-info{flex:1}.invite-email{font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.invite-meta{display:flex;gap:1rem;align-items:center}.invite-expiry{color:var(--text-secondary);font-size:.9rem}.no-invites{text-align:center;padding:2rem;color:var(--text-tertiary)}.dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}[data-theme=dark] .dialog-overlay{background:#000000b3}.dialog{background:var(--bg-elevated);border-radius:8px;padding:2rem;min-width:400px;max-width:500px;border:1px solid var(--border-color)}.dialog h3{margin-top:0;margin-bottom:1.5rem;color:var(--text-primary)}.dialog form{display:flex;flex-direction:column;gap:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:var(--text-secondary);font-weight:500}.form-group input,.form-group select{width:100%;padding:.75rem;border:1px solid var(--border-color);border-radius:4px;font-size:1rem;background:var(--bg-primary);color:var(--text-primary)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary-color)}.dialog-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem}.dialog-actions button{padding:.75rem 1.5rem;border:none;border-radius:4px;cursor:pointer;font-size:1rem;transition:background .2s}.dialog-actions button[type=button]{background:var(--bg-hover);color:var(--text-primary)}.dialog-actions button[type=button]:hover{background:var(--border-color)}.dialog-actions button[type=submit]{background:var(--primary-color);color:#fff}.dialog-actions button[type=submit]:hover{background:var(--primary-hover)}.dialog-actions button:disabled{opacity:.5;cursor:not-allowed}.loading{text-align:center;padding:3rem;color:var(--text-secondary)}.accept-invite-container{min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem}.invite-card,.success-card{border-radius:12px;padding:3rem;max-width:500px;width:100%;box-shadow:0 10px 40px #0003}.invite-card h1{margin:0 0 1rem;color:#333;font-size:2rem;text-align:center}.invite-description{text-align:center;color:#666;margin-bottom:2rem;line-height:1.6}.invite-form{margin-top:2rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:#555;font-weight:500;font-size:.95rem}.form-group input{width:100%;padding:.875rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .2s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#667eea}.form-group input:disabled{background:#f5f5f5;cursor:not-allowed}.form-group small{display:block;margin-top:.5rem;color:#999;font-size:.85rem}.submit-btn{width:100%;padding:1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;margin-top:1rem}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.invite-footer{margin-top:2rem;text-align:center;color:#666;font-size:.9rem}.invite-footer a{color:#667eea;text-decoration:none;font-weight:600}.invite-footer a:hover{text-decoration:underline}.error-message{background:#ffebee;color:#c62828;padding:1rem;border-radius:8px;margin-bottom:1.5rem;text-align:center;font-size:.95rem}.success-card{text-align:center}.success-icon{width:80px;height:80px;margin:0 auto 1.5rem;background:#4caf50;color:#fff;border-radius:50%;display:flex;justify-content:center;align-items:center;font-size:3rem;font-weight:700}.success-card h2{color:#333;margin-bottom:1rem}.success-card p{color:#666;line-height:1.6;margin:.5rem 0}.networks-container{min-height:100vh;background-color:var(--bg-secondary)}.refresh-btn{padding:.5rem 1rem;background-color:var(--primary-color);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.refresh-btn:hover{background-color:var(--primary-hover)}.error-message{background:var(--danger-bg);color:var(--danger-color);padding:1rem;border-radius:4px;margin-bottom:1rem;border:1px solid var(--danger-color)}.network-create{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:8px;padding:12px;margin-bottom:16px}.network-create-row{display:grid;grid-template-columns:1.2fr 2fr auto;gap:10px;align-items:center}.network-input{padding:10px 12px;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary)}.create-btn{padding:10px 14px;border-radius:6px;border:none;background:var(--primary-color);color:#fff;cursor:pointer;transition:background-color .2s}.create-btn:hover:not(:disabled){background:var(--primary-hover)}.create-btn:disabled{opacity:.5;cursor:not-allowed}.networks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.network-card{display:block;padding:14px;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-elevated);color:var(--text-primary);text-decoration:none;transition:box-shadow .2s,transform .2s}.network-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.network-card-title{font-weight:700;margin-bottom:6px;color:var(--text-primary)}.network-card-desc{color:var(--text-secondary);font-size:14px}.empty{padding:18px;border-radius:8px;border:1px dashed var(--border-color);color:var(--text-tertiary);text-align:center}.toast{position:fixed;top:20px;right:20px;padding:12px 16px;border-radius:6px;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:12px;z-index:1000;animation:slideIn .3s ease-out;min-width:250px}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-success{background-color:#22c55e26;color:#22c55e;border:1px solid rgba(34,197,94,.3)}[data-theme=dark] .toast-success{background-color:#22c55e33;color:#4ade80;border:1px solid rgba(34,197,94,.4)}.toast-info{background-color:#3b82f626;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}[data-theme=dark] .toast-info{background-color:#3b82f633;color:#60a5fa;border:1px solid rgba(59,130,246,.4)}.toast-close{background:none;border:none;font-size:20px;cursor:pointer;color:inherit;opacity:.7;padding:0;margin-left:auto;line-height:1;transition:opacity .2s}.toast-close:hover{opacity:1}.network-detail{padding:24px;max-width:1200px;margin:0 auto}.network-detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid var(--border-color, #e2e8f0)}.header-left{flex:1}.back-link{display:inline-block;color:var(--text-secondary, #718096);text-decoration:none;font-size:14px;margin-bottom:8px}.back-link:hover{color:var(--primary-color, #3182ce)}.network-detail-header h1{margin:0 0 8px;font-size:28px;font-weight:600;color:var(--text-primary, #1a202c)}.network-detail-header .description{margin:0;color:var(--text-secondary, #718096);font-size:16px}.btn-primary{background-color:var(--primary-color, #3182ce);color:#fff;border:none;padding:12px 24px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-primary:hover{background-color:var(--primary-dark, #2c5282)}.btn-secondary{background-color:transparent;color:var(--primary-color, #3182ce);border:1px solid var(--primary-color, #3182ce);padding:12px 24px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;display:inline-block}.btn-secondary:hover{background-color:var(--primary-color, #3182ce);color:#fff}.network-detail-content section{margin-bottom:32px}.network-detail-content h2{font-size:18px;font-weight:600;margin:0 0 16px;color:var(--text-primary, #1a202c)}.info-section{background:var(--card-bg, white);border-radius:8px;padding:24px;border:1px solid var(--border-color, #e2e8f0)}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px}.info-item{display:flex;flex-direction:column;gap:4px}.info-item label{font-size:12px;font-weight:500;color:var(--text-secondary, #718096);text-transform:uppercase}.info-item span{font-size:14px;color:var(--text-primary, #1a202c)}.info-item .mono{font-family:monospace;font-size:13px;background:var(--code-bg, #f7fafc);padding:4px 8px;border-radius:4px}.agents-section{background:var(--card-bg, white);border-radius:8px;padding:24px;border:1px solid var(--border-color, #e2e8f0)}.agents-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.agent-card{display:flex;align-items:center;gap:12px;padding:16px;background:var(--card-bg, white);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;text-decoration:none;transition:box-shadow .2s,border-color .2s}.agent-card:hover{box-shadow:0 4px 12px #0000001a;border-color:var(--primary-color, #3182ce)}.agent-status{width:12px;height:12px;border-radius:50%;flex-shrink:0}.agent-status[data-status=online]{background-color:#48bb78}.agent-status[data-status=offline]{background-color:#e53e3e}.agent-status[data-status=connecting]{background-color:#ecc94b}.agent-info{display:flex;flex-direction:column;gap:2px;min-width:0}.agent-name{font-weight:500;color:var(--text-primary, #1a202c);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agent-ip{font-size:13px;color:var(--text-secondary, #718096);font-family:monospace}.empty-state{text-align:center;padding:32px;color:var(--text-secondary, #718096)}.empty-state p{margin:0 0 16px}.loading,.error{text-align:center;padding:48px}.error h2{color:var(--error-color, #e53e3e);margin-bottom:8px}.error p{color:var(--text-secondary, #718096);margin-bottom:24px}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.canvas-toolbar{width:200px;background:var(--bg-elevated);border-right:1px solid var(--border-color);display:flex;flex-direction:column;height:100%;overflow-y:auto;position:absolute;left:0;top:0;z-index:10;box-shadow:2px 0 8px #0000001a}.canvas-toolbar-header{padding:12px 16px;font-weight:600;font-size:14px;color:var(--text-primary);border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.canvas-toolbar-content{flex:1;padding:8px}.canvas-toolbar-category{margin-bottom:16px}.canvas-toolbar-category-title{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-secondary);padding:8px 4px 4px;letter-spacing:.5px}.canvas-toolbar-tools{display:flex;flex-direction:column;gap:4px}.canvas-toolbar-tool{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;cursor:grab;transition:background-color .2s;-webkit-user-select:none;user-select:none;border:1px solid transparent}.canvas-toolbar-tool:hover:not(.disabled){background:var(--bg-hover);border-color:var(--border-color)}.canvas-toolbar-tool:active:not(.disabled){cursor:grabbing}.canvas-toolbar-tool.dragging{opacity:.5}.canvas-toolbar-tool.disabled{opacity:.5;cursor:not-allowed}.canvas-toolbar-tool-icon{font-size:18px}.canvas-toolbar-tool-label{font-size:13px;color:var(--text-primary)}.agents-bar{width:220px;background:var(--bg-elevated);border-left:1px solid var(--border-color);display:flex;flex-direction:column;height:100%;overflow-y:auto;position:absolute;right:0;top:0;z-index:10;box-shadow:-2px 0 8px #0000001a}.agents-bar-header{padding:12px 16px;font-weight:600;font-size:14px;color:var(--text-primary);border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.agents-bar-filters{padding:8px;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.agents-bar-search{width:100%;padding:6px 10px;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-elevated);color:var(--text-primary);font-size:12px;margin-bottom:8px}.agents-bar-search:focus{outline:none;border-color:var(--primary-color)}.agents-bar-controls{display:flex;gap:4px}.agents-bar-sort{flex:1;padding:4px 8px;border-radius:4px;border:1px solid var(--border-color);background:var(--bg-elevated);color:var(--text-primary);font-size:11px;cursor:pointer}.agents-bar-count{padding:6px 16px;font-size:11px;color:var(--text-secondary);border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.agents-bar-content{flex:1;padding:8px}.agents-bar-empty{padding:16px;text-align:center;color:var(--text-secondary);font-size:13px}.agents-bar-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:6px;cursor:grab;transition:background-color .2s;-webkit-user-select:none;user-select:none;border:1px solid transparent;margin-bottom:4px}.agents-bar-item:hover:not(.disabled){background:var(--bg-hover);border-color:var(--border-color)}.agents-bar-item:active:not(.disabled){cursor:grabbing}.agents-bar-item.dragging{opacity:.5}.agents-bar-item.disabled{opacity:.5;cursor:not-allowed}.agents-bar-item-icon{font-size:20px;flex-shrink:0}.agents-bar-item-info{flex:1;min-width:0}.agents-bar-item-name{font-size:13px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agents-bar-item-ip{font-size:11px;color:var(--text-secondary);margin-top:2px}.tool-config-panel{position:fixed;right:240px;top:80px;width:320px;max-height:calc(100vh - 100px);background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000;display:flex;flex-direction:column;overflow:hidden}.tool-config-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.tool-config-panel-title{font-weight:600;font-size:14px;color:var(--text-primary)}.tool-config-panel-close{background:none;border:none;font-size:24px;color:var(--text-secondary);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.tool-config-panel-close:hover{background:var(--bg-hover);color:var(--text-primary)}.tool-config-panel-content{flex:1;overflow-y:auto;padding:16px}.tool-config-section{margin-bottom:20px}.tool-config-section-title{font-size:12px;font-weight:600;text-transform:uppercase;color:var(--text-secondary);margin-bottom:12px;letter-spacing:.5px}.tool-config-field{margin-bottom:12px}.tool-config-field label{display:block;font-size:12px;font-weight:500;color:var(--text-primary);margin-bottom:6px}.tool-config-field input[type=text]{width:100%;padding:8px 10px;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);font-size:13px}.tool-config-field input[type=text]:disabled{opacity:.6;cursor:not-allowed}.tool-config-field input[type=checkbox]{margin-right:8px}.tool-config-empty{padding:12px;text-align:center;color:var(--text-secondary);font-size:12px}.tool-config-agents-list{display:flex;flex-direction:column;gap:6px}.tool-config-agent-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg-primary);border-radius:6px;border:1px solid var(--border-color)}.tool-config-agent-icon{font-size:16px}.tool-config-agent-name{font-size:12px;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-config-delete-btn{width:100%;padding:10px;background:var(--danger-bg, #fee2e2);color:var(--danger-color, #dc2626);border:1px solid var(--danger-color, #dc2626);border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.tool-config-delete-btn:hover{background:var(--danger-color, #dc2626);color:#fff}.help-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.help-modal{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 24px #0003;max-width:600px;width:90%;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.help-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.help-modal-header h2{margin:0;font-size:20px;font-weight:600;color:var(--text-primary)}.help-modal-close{background:none;border:none;font-size:28px;color:var(--text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.help-modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.help-modal-content{padding:24px;overflow-y:auto;flex:1}.help-section{margin-bottom:24px}.help-section:last-child{margin-bottom:0}.help-section h3{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.help-shortcut{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border-color)}.help-shortcut:last-child{border-bottom:none}.help-shortcut kbd{display:inline-flex;align-items:center;padding:4px 8px;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:4px;font-family:Courier New,monospace;font-size:12px;font-weight:600;color:var(--text-primary);box-shadow:0 1px 2px #0000001a;margin:0 2px}.help-shortcut span{color:var(--text-secondary);font-size:13px}.help-tips{margin:0;padding-left:20px;color:var(--text-secondary);font-size:13px;line-height:1.6}.help-tips li{margin-bottom:8px}.validation-panel{position:fixed;left:240px;top:80px;width:360px;max-height:calc(100vh - 100px);background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000;display:flex;flex-direction:column;overflow:hidden}.validation-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.validation-panel-title{font-weight:600;font-size:14px;color:var(--text-primary);display:flex;align-items:center;gap:8px}.validation-count{padding:2px 6px;border-radius:12px;font-size:11px;font-weight:600}.validation-count.error{background:#ef444426;color:#ef4444}.validation-count.warning{background:#fbbf2426;color:#fbbf24}.validation-panel-close{background:none;border:none;font-size:24px;color:var(--text-secondary);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.validation-panel-close:hover{background:var(--bg-hover);color:var(--text-primary)}.validation-panel-content{flex:1;overflow-y:auto;padding:16px}.validation-section{margin-bottom:16px}.validation-section:last-child{margin-bottom:0}.validation-section-title{font-size:12px;font-weight:600;text-transform:uppercase;margin-bottom:8px;letter-spacing:.5px}.validation-section-title.error{color:#ef4444}.validation-section-title.warning{color:#fbbf24}.validation-list{list-style:none;padding:0;margin:0}.validation-item{padding:8px 12px;border-radius:6px;margin-bottom:6px;font-size:12px;line-height:1.4}.validation-item.error{background:#ef44441a;color:#ef4444;border-left:3px solid #ef4444}.validation-item.warning{background:#fbbf241a;color:#fbbf24;border-left:3px solid #fbbf24}.validation-panel-footer{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border-color);background:var(--bg-primary)}.validation-panel-footer .btn{flex:1;padding:8px 16px;border-radius:6px;border:none;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.validation-panel-footer .btn-primary{background:var(--primary-color);color:#fff}.validation-panel-footer .btn-primary:hover{background:var(--primary-hover)}.validation-panel-footer .btn-secondary{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color)}.validation-panel-footer .btn-secondary:hover{background:var(--bg-hover)}.templates-menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.templates-menu{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 24px #0003;width:500px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.templates-menu-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-color);background:var(--bg-primary)}.templates-menu-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.templates-menu-close{background:none;border:none;font-size:28px;color:var(--text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.templates-menu-close:hover{background:var(--bg-hover);color:var(--text-primary)}.templates-menu-content{flex:1;overflow-y:auto;padding:16px}.template-item{padding:16px;border:1px solid var(--border-color);border-radius:8px;margin-bottom:12px;cursor:pointer;transition:all .2s}.template-item:hover{background:var(--bg-hover);border-color:var(--primary-color)}.template-item.selected{background:#3b82f61a;border-color:var(--primary-color)}.template-item-name{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.template-item-description{font-size:12px;color:var(--text-secondary);margin-bottom:8px}.template-item-stats{font-size:11px;color:var(--text-secondary)}.templates-menu-footer{display:flex;gap:8px;padding:16px 24px;border-top:1px solid var(--border-color);background:var(--bg-primary)}.templates-menu-footer .btn{flex:1;padding:8px 16px;border-radius:6px;border:none;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.templates-menu-footer .btn-primary{background:var(--primary-color);color:#fff}.templates-menu-footer .btn-primary:hover:not(:disabled){background:var(--primary-hover)}.templates-menu-footer .btn-primary:disabled{opacity:.5;cursor:not-allowed}.templates-menu-footer .btn-secondary{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-color)}.templates-menu-footer .btn-secondary:hover{background:var(--bg-hover)}.zoom-controls{position:absolute;bottom:20px;right:20px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:8px;box-shadow:0 2px 8px #0000001a;z-index:100}.zoom-controls-group{display:flex;align-items:center;gap:4px}.zoom-control-btn{width:32px;height:32px;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);border-radius:4px;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;transition:all .2s}.zoom-control-btn:hover{background:var(--bg-hover);border-color:var(--primary-color)}.zoom-control-btn-wide{width:auto;padding:0 12px;font-size:12px}.zoom-level{min-width:50px;text-align:center;font-size:12px;color:var(--text-primary);font-weight:500}.edge-label{font-size:11px;pointer-events:all}.edge-label-content{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:4px;padding:2px 6px;color:var(--text-primary);white-space:nowrap;box-shadow:0 1px 3px #0000001a}.edge-active{animation:edgePulse 2s ease-in-out infinite}@keyframes edgePulse{0%,to{opacity:1}50%{opacity:.6}}.node{padding:12px 16px;border-radius:8px;background:var(--bg-primary);border:2px solid var(--border-color);min-width:120px;text-align:center;transition:all .2s;position:relative}.node.selected{border-color:var(--primary-color);box-shadow:0 0 0 3px rgba(var(--primary-color-rgb, 59, 130, 246),.1)}.node-icon{font-size:24px;margin-bottom:4px;display:flex;align-items:center;justify-content:center}.node-icon svg{display:block}.node-label{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-subtitle{font-size:10px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.node-badge{position:absolute;top:-6px;right:-6px;background:var(--primary-color);color:#fff;border-radius:10px;padding:2px 6px;font-size:10px;font-weight:600;min-width:18px;text-align:center;box-shadow:0 2px 4px #0003}.node-status-indicator{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;border:2px solid var(--bg-primary)}.node-status-indicator.status-success{background:#22c55e}.node-status-indicator.status-warning{background:#fbbf24}.node-status-indicator.status-error{background:#ef4444}.agent-node{background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-elevated) 100%);border-color:#3b82f6}.agent-node.status-connected{border-color:#22c55e}.agent-node.status-isolated{border-color:#ef4444}.tool-node{background:linear-gradient(135deg,var(--bg-elevated) 0%,var(--bg-primary) 100%)}.tool-node-switch{border-color:#10b981}.tool-node-switch.status-active{border-color:#22c55e;box-shadow:0 0 0 2px #22c55e33}.tool-node-router{border-color:#f59e0b}.tool-node-router.status-active{border-color:#fbbf24;box-shadow:0 0 0 2px #fbbf2433}.tool-node-firewall{border-color:#ef4444}.tool-node-firewall.status-active{border-color:#f87171;box-shadow:0 0 0 2px #f8717133}.tool-node-gateway{border-color:#a855f7}.tool-node-gateway.status-active{border-color:#c084fc;box-shadow:0 0 0 2px #c084fc33}.canvas-container{min-height:100vh;background-color:var(--bg-secondary);display:flex;flex-direction:column}.canvas-header{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;background:var(--bg-primary);border-bottom:1px solid var(--border-color)}.canvas-header-left{display:flex;align-items:center;gap:12px}.meta{display:flex;gap:10px;color:var(--text-secondary);font-size:13px}.meta-item{color:var(--text-secondary)}.canvas-header-right,.canvas-header-controls{display:flex;align-items:center;gap:8px}.canvas-header-divider{width:1px;height:24px;background:var(--border-color);margin:0 4px}.unsaved-indicator{color:#fbbf24!important;font-weight:500}.btn-icon{padding:6px 10px;min-width:32px;font-size:16px}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.btn-danger{background:var(--danger-bg, #fee2e2);color:var(--danger-color, #dc2626);border:1px solid var(--danger-color, #dc2626)}.btn-danger:hover:not(:disabled){background:var(--danger-color, #dc2626);color:#fff}.btn{padding:8px 16px;border-radius:6px;border:none;background:var(--primary-color);color:#fff;cursor:pointer;font-size:.9rem;transition:background-color .2s}.btn:hover:not(:disabled){background:var(--primary-hover)}.btn.primary{background:var(--primary-color)}.btn.primary:hover:not(:disabled){background:var(--primary-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.error-message{background:var(--danger-bg, #fee2e2);color:var(--danger-color, #dc2626);padding:1rem;border-radius:4px;margin:12px 24px;border:1px solid var(--danger-color, #dc2626)}.loading{text-align:center;padding:2rem;color:var(--text-secondary)}.apply-status{margin:12px 24px;display:flex;gap:12px;align-items:flex-start}.badge{padding:6px 10px;border-radius:999px;border:1px solid var(--border-color);background:var(--bg-elevated);font-size:12px;color:var(--text-primary)}.badge.applying{background:#fbbf2426;color:#fbbf24;border-color:#fbbf244d}[data-theme=dark] .badge.applying{background:#fbbf2433;color:#fcd34d;border-color:#fbbf2466}.badge.applied{background:#22c55e26;color:#22c55e;border-color:#22c55e4d}[data-theme=dark] .badge.applied{background:#22c55e33;color:#4ade80;border-color:#22c55e66}.badge.failed{background:#ef444426;color:#ef4444;border-color:#ef44444d}[data-theme=dark] .badge.failed{background:#ef444433;color:#f87171;border-color:#ef444466}.apply-result{margin:0;padding:10px;border-radius:8px;border:1px solid var(--border-color);background:var(--bg-elevated);color:var(--text-primary);max-height:160px;overflow:auto;font-size:12px;width:100%;font-family:Courier New,monospace}.canvas-layout{display:flex;flex:1;overflow:hidden;min-height:0;position:relative}.canvas-wrapper{flex:1;min-height:0;position:relative;width:100%;padding-left:200px;padding-right:220px}.canvas-wrapper .react-flow{background:var(--bg-elevated);width:100%;height:100%}[data-theme=dark] .canvas-wrapper .react-flow__controls{background:var(--bg-elevated);border:1px solid var(--border-color)}[data-theme=dark] .canvas-wrapper .react-flow__controls button{background:var(--bg-primary);border-bottom:1px solid var(--border-color);color:var(--text-primary)}[data-theme=dark] .canvas-wrapper .react-flow__controls button:hover{background:var(--bg-hover)}[data-theme=dark] .canvas-wrapper .react-flow__minimap{background:var(--bg-elevated);border:1px solid var(--border-color)}[data-theme=dark] .canvas-wrapper .react-flow__node{background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-primary)}[data-theme=dark] .canvas-wrapper .react-flow__edge{stroke:var(--text-secondary)}[data-theme=dark] .canvas-wrapper .react-flow__edge.selected{stroke:var(--primary-color)}.canvas-drop-zone-active{background:#3b82f60d!important}.canvas-drop-zone-active:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border:2px dashed var(--primary-color);border-radius:8px;pointer-events:none}.node:focus{outline:2px solid var(--primary-color);outline-offset:2px}.btn:focus,.agents-bar-item:focus,.canvas-toolbar-tool:focus{outline:2px solid var(--primary-color);outline-offset:2px}@media (max-width: 768px){.canvas-header{flex-direction:column;align-items:stretch;gap:12px}.canvas-header-controls{flex-wrap:wrap;justify-content:center}.canvas-wrapper{padding-left:0;padding-right:0}.agents-bar,.canvas-toolbar{position:relative;width:100%;max-height:200px;border:none;border-bottom:1px solid var(--border-color)}.canvas-layout{flex-direction:column}.tool-config-panel{position:fixed;bottom:0;left:0;right:0;top:auto;max-height:60vh;border-radius:12px 12px 0 0}}@media (prefers-contrast: high){.node{border-width:3px}.btn{border:2px solid currentColor}}@media (prefers-reduced-motion: reduce){.node,.btn,.agents-bar-item,.canvas-toolbar-tool{transition:none}.edge-active{animation:none}}.audit-log-container{min-height:100vh;background-color:var(--bg-secondary)}.main-content{max-width:1400px;margin:0 auto;padding:2rem}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.page-header h2{margin:0;color:var(--text-primary);font-size:1.8rem}.page-header-actions{display:flex;gap:1rem;align-items:center}.refresh-btn{padding:.5rem 1rem;background-color:#667eea;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.refresh-btn:hover{background-color:#5568d3}.error-message{background-color:#fee;color:#c33;padding:1rem;border-radius:4px;margin-bottom:1rem}.actor-cell,.target-cell{display:flex;flex-direction:column;gap:.25rem}.actor-type,.target-type{font-weight:500;color:var(--text-primary);font-size:.875rem;text-transform:capitalize}.actor-id,.target-id{font-size:.75rem;color:var(--text-tertiary);font-family:monospace}.outcome-badge{display:inline-block;padding:.35rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.outcome-success{background:#22c55e1a;color:#22c55e}.outcome-failure{background:#ef44441a;color:#ef4444}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:1.5rem;padding:1rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.pagination-btn{padding:.5rem 1rem;border:1px solid #ddd;border-radius:4px;background:#fff;cursor:pointer;font-size:.875rem;transition:all .2s}.pagination-btn:hover:not(:disabled){background-color:#f8f9fa;border-color:#adb5bd}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-info{font-size:.875rem;color:#6c757d}.profile-container{min-height:100vh;background-color:var(--bg-secondary);padding:2rem;max-width:1000px;margin:0 auto}.profile-header{background:var(--bg-elevated);border-radius:12px;padding:2rem;margin-bottom:2rem;box-shadow:var(--shadow-md);display:flex;align-items:center;gap:1.5rem;border:1px solid var(--border-color)}.profile-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,var(--primary-color),var(--primary-hover));color:#fff;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:600;flex-shrink:0}.profile-header-info{flex:1}.profile-header-info h1{margin:0 0 .5rem;font-size:1.8rem;color:var(--text-primary)}.profile-email{margin:0 0 .5rem;color:var(--text-secondary);font-size:1rem}.platform-admin-badge{display:inline-block;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.profile-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:2px solid var(--border-color);background:var(--bg-elevated);border-radius:8px 8px 0 0;padding:.5rem;box-shadow:var(--shadow-sm)}.tab-button{padding:.75rem 1.5rem;border:none;background:transparent;color:var(--text-secondary);font-size:1rem;font-weight:500;cursor:pointer;border-radius:6px;transition:all .2s ease;position:relative}.tab-button:hover{background:var(--bg-hover);color:var(--text-primary)}.tab-button.active{color:var(--primary-color);background:var(--bg-active)}.tab-button.active:after{content:"";position:absolute;bottom:-.5rem;left:0;right:0;height:3px;background:var(--primary-color);border-radius:2px 2px 0 0}.alert{padding:1rem 1.5rem;border-radius:8px;margin-bottom:1.5rem;font-weight:500;animation:slideIn .3s ease}.alert-error{background:var(--danger-bg);color:var(--danger-color);border:1px solid var(--danger-color)}.alert-success{background:#e8f5e9;color:#2e7d32;border:1px solid #4caf50}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.profile-content{background:var(--bg-elevated);border-radius:12px;padding:2rem;box-shadow:var(--shadow-md);border:1px solid var(--border-color)}.profile-section h2{margin:0 0 1.5rem;font-size:1.5rem;color:var(--text-primary);font-weight:600}.profile-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.9rem;font-weight:500;color:var(--text-primary)}.form-control{padding:.75rem;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-elevated);color:var(--text-primary);font-size:1rem;transition:all .2s ease}.form-control:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #667eea1a}.form-control:disabled{opacity:.6;cursor:not-allowed}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.tenant-status{margin:0;color:var(--text-secondary);font-size:.9rem}.status-badge{display:inline-block;padding:.25rem .75rem;border-radius:6px;font-size:.75rem;font-weight:600;text-transform:capitalize}.status-badge.status-active{background:#e8f5e9;color:#2e7d32}.status-badge.status-suspended{background:#fff3e0;color:#e65100}.status-badge.status-deleted{background:#ffebee;color:#c62828}[data-theme=dark] .status-badge.status-active{background:#1b5e20;color:#81c784}[data-theme=dark] .status-badge.status-suspended{background:#e65100;color:#fff3e0}[data-theme=dark] .status-badge.status-deleted{background:#c62828;color:#ffebee}.form-actions{display:flex;gap:1rem;margin-top:.5rem}.btn-primary,.btn-secondary{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary{background:var(--primary-color);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #667eea4d}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--bg-active)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.tenants-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.tenant-card{background:var(--bg-subtle);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;transition:all .2s ease}.tenant-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--primary-color)}.tenant-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.tenant-card-header h3{margin:0;font-size:1.2rem;color:var(--text-primary);font-weight:600}.tenant-card-body{display:flex;flex-direction:column;gap:.5rem}.tenant-slug{margin:0;color:var(--text-secondary);font-size:.9rem;font-family:Courier New,monospace}.tenant-joined{margin:0;color:var(--text-tertiary);font-size:.85rem}.role-badge{padding:.4rem .8rem;border-radius:6px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.role-owner{background:#ffc107;color:#000}.role-admin{background:#2196f3;color:#fff}.role-operator{background:#9c27b0;color:#fff}.role-viewer{background:#757575;color:#fff}.empty-state{text-align:center;padding:3rem;color:var(--text-tertiary)}.empty-state p{margin:0;font-size:1.1rem}.loading{text-align:center;padding:3rem;color:var(--text-secondary);font-size:1.1rem}.error-message{background:var(--danger-bg);color:var(--danger-color);padding:1rem 1.5rem;border-radius:8px;margin-bottom:1.5rem;border:1px solid var(--danger-color)}[data-theme=dark] .alert-success{background:#1b5e20;color:#81c784;border-color:#4caf50}[data-theme=dark] .tenant-card{background:var(--bg-secondary)}@media (max-width: 768px){.profile-container{padding:1rem}.profile-header{flex-direction:column;text-align:center;padding:1.5rem}.profile-tabs{flex-wrap:wrap;gap:.25rem}.tab-button{padding:.5rem 1rem;font-size:.9rem}.profile-content{padding:1.5rem}.tenants-grid{grid-template-columns:1fr}.form-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%}}.download-tray{position:fixed;right:16px;bottom:16px;width:min(420px,calc(100vw - 32px));z-index:2000}.download-tray-card{background:#fffffff2;border:1px solid #e9ecef;border-radius:14px;box-shadow:0 12px 35px #0000002e;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.download-tray-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid #eee}.download-tray-title{font-weight:700;color:#222;font-size:13px;letter-spacing:.2px}.download-tray-actions{display:flex;gap:8px}.download-tray-btn{border:1px solid #ddd;background:#fff;border-radius:10px;padding:6px 10px;cursor:pointer;font-size:12px;color:#333}.download-tray-btn:hover{border-color:#667eea;color:#667eea}.download-tray-list{max-height:320px;overflow:auto}.download-item{padding:10px 12px;border-bottom:1px solid #f0f0f0}.download-item:last-child{border-bottom:none}.download-row{display:flex;align-items:center;gap:10px}.download-name{flex:1;min-width:0;font-weight:600;color:#222;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.download-meta{color:#666;font-size:11px;margin-top:4px;display:flex;justify-content:space-between;gap:8px}.download-progress{margin-top:8px;height:10px;border-radius:999px;background:#edf0ff;overflow:hidden}.download-progress-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#667eea,#764ba2);width:0%;transition:width .25s ease}.download-progress-indeterminate{height:100%;width:40%;background:linear-gradient(90deg,#667eea26,#667eeaa6,#667eea26);animation:indet 1.2s ease-in-out infinite}@keyframes indet{0%{transform:translate(-120%)}to{transform:translate(320%)}}.download-status{font-size:11px;font-weight:600}.download-status.downloading{color:#3b4cca}.download-status.completed{color:#2e7d32}.download-status.failed{color:#c62828}.download-status.cancelled{color:#6d6d6d}.download-cancel{border:1px solid #ddd;background:#fff;border-radius:10px;padding:6px 10px;cursor:pointer;font-size:12px;color:#333}.download-cancel:hover{border-color:#c62828;color:#c62828}.avatar-dropdown{position:relative}.avatar-button{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:transparent;border:none;border-radius:8px;cursor:pointer;transition:background-color .2s;color:var(--text-primary)}.avatar-button:hover{background:var(--bg-hover)}.avatar-circle{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:.875rem;flex-shrink:0}.avatar-username{font-weight:500;font-size:.9rem;color:var(--text-primary)}.avatar-chevron{font-size:.75rem;color:var(--text-secondary);transition:transform .2s}.avatar-chevron.open{transform:rotate(180deg)}.dropdown-menu{position:absolute;top:calc(100% + .5rem);right:0;min-width:240px;background:var(--bg-elevated);border-radius:12px;box-shadow:0 4px 20px #00000026;z-index:1000;overflow:hidden;animation:slideDown .2s ease-out;border:1px solid var(--border-color)}.dropdown-menu.rtl{right:auto;left:0}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{padding:1rem;display:flex;align-items:center;gap:.75rem;background:var(--bg-subtle)}.dropdown-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:1rem;flex-shrink:0}.dropdown-user-info{flex:1;min-width:0}.dropdown-username{font-weight:600;color:var(--text-primary);font-size:.95rem;margin-bottom:.25rem}.dropdown-email{font-size:.8rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-divider{height:1px;background:var(--border-color);margin:.5rem 0}.dropdown-section{padding:.5rem 0}.dropdown-section-label{padding:.5rem 1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary)}.dropdown-item{width:100%;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:transparent;border:none;text-align:left;cursor:pointer;transition:background-color .2s;color:var(--text-primary);font-size:.9rem}[dir=rtl] .dropdown-item{text-align:right}.dropdown-item:hover{background:var(--bg-hover)}.dropdown-item.active{background:var(--bg-active);color:var(--primary-color)}.dropdown-item-danger{color:var(--danger-color)}.dropdown-item-danger:hover{background:var(--danger-bg);color:var(--danger-color)}.dropdown-icon{width:16px;color:var(--text-secondary);flex-shrink:0}.dropdown-item.active .dropdown-icon{color:var(--primary-color)}.dropdown-check{margin-left:auto;color:var(--primary-color);font-weight:600}[dir=rtl] .dropdown-check{margin-left:0;margin-right:auto}@media (max-width: 767px){.avatar-username{display:none}.dropdown-menu{min-width:200px;right:.5rem}.dropdown-menu.rtl{right:auto;left:.5rem}}.toolbar{position:fixed;top:0;left:0;right:0;height:64px;background:var(--bg-elevated);border-bottom:1px solid var(--border-color);z-index:999;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--bg-elevated-alpha)}.toolbar-content{display:flex;align-items:center;height:100%;padding:0 1.5rem;max-width:100%}.toolbar-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;border-radius:8px;cursor:pointer;color:var(--text-primary);transition:background-color .2s;font-size:1.25rem}.toolbar-toggle:hover{background:var(--bg-hover)}.toolbar-spacer{flex:1}@media (max-width: 767px){.toolbar{height:56px}.toolbar-content{padding:0 1rem}.toolbar-toggle{width:36px;height:36px;font-size:1.1rem}}.sidebar-item-wrapper{width:100%}.sidebar-item-link{text-decoration:none;color:inherit;display:block}.sidebar-item{padding:.75rem 1rem;cursor:pointer;transition:all .2s;border-radius:8px;margin:.25rem .5rem;position:relative}.sidebar-item:hover{background:var(--bg-hover)}.sidebar-item.active{background:var(--bg-active);color:var(--primary-color)}.sidebar-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:60%;background:var(--primary-color);border-radius:0 2px 2px 0}[dir=rtl] .sidebar-item.active:before{left:auto;right:0;border-radius:2px 0 0 2px}.sidebar-item.parent-active{color:var(--primary-color)}.sidebar-item-content{display:flex;align-items:center;gap:.75rem;position:relative}.sidebar-item-icon{width:20px;height:20px;flex-shrink:0;color:var(--text-secondary);transition:color .2s}.sidebar-item.active .sidebar-item-icon,.sidebar-item.parent-active .sidebar-item-icon{color:var(--primary-color)}.sidebar-item-title{flex:1;font-size:.9rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-item-badge{background:var(--primary-color);color:#fff;font-size:.7rem;font-weight:600;padding:.2rem .5rem;border-radius:12px;min-width:20px;text-align:center;flex-shrink:0}.sidebar-item-chevron-button{background:transparent;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-tertiary);transition:color .2s}.sidebar-item-chevron-button:hover{color:var(--text-primary)}.sidebar-item-chevron{width:14px;height:14px;color:inherit;transition:transform .2s}.sidebar-item-chevron.expanded{transform:rotate(90deg)}[dir=rtl] .sidebar-item-chevron.expanded{transform:rotate(-90deg)}.sidebar-item-children{max-height:0;overflow:hidden;transition:max-height .25s ease-in;padding-left:1.5rem}[dir=rtl] .sidebar-item-children{padding-left:0;padding-right:1.5rem}.sidebar-item-children.expanded{max-height:1000px;transition:max-height .35s ease-out}.sidebar-item.level-1{margin-left:.5rem}[dir=rtl] .sidebar-item.level-1{margin-left:0;margin-right:.5rem}.sidebar-item.level-1 .sidebar-item-icon{width:16px;height:16px}.sidebar-item.level-1 .sidebar-item-title{font-size:.85rem}.sidebar{position:fixed;top:64px;left:0;width:280px;height:calc(100vh - 64px);background:var(--bg-elevated);border-right:1px solid var(--border-color);z-index:997;display:flex;flex-direction:column;transform:translate(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);overflow-y:auto;overflow-x:hidden}.sidebar.open{transform:translate(0)}.sidebar.mobile{top:56px;height:calc(100vh - 56px);box-shadow:2px 0 10px #0000001a}.sidebar.desktop{transform:translate(-100%)}.sidebar.desktop.open{transform:translate(0)}[dir=rtl] .sidebar{left:auto;right:0;border-right:none;border-left:1px solid var(--border-color);transform:translate(100%)}[dir=rtl] .sidebar.open{transform:translate(0)}.sidebar-header{padding:1.5rem 1rem;border-bottom:1px solid var(--border-color);background:var(--bg-subtle)}.sidebar-logo{display:flex;align-items:center;gap:.75rem;color:var(--text-primary)}.sidebar-logo-icon{font-size:1.5rem;color:var(--primary-color)}.sidebar-logo-text{font-size:1.25rem;font-weight:700;letter-spacing:-.5px}.sidebar-nav{flex:1;padding:1rem 0;overflow-y:auto;overflow-x:hidden}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.dark-theme .sidebar{background:var(--bg-elevated);box-shadow:2px 0 10px #0000004d}@media (max-width: 767px){.sidebar{width:280px}}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}[dir="rtl"] @keyframes slideIn{from{transform:translate(100%)}to{transform:translate(0)}}.sidebar.mobile.open{animation:slideIn .3s cubic-bezier(.4,0,.2,1)}.dashboard-layout{display:flex;flex-direction:column;min-height:100vh;position:relative}.dashboard-content{flex:1;margin-left:0;transition:margin-left .3s cubic-bezier(.4,0,.2,1);padding-top:64px;min-height:calc(100vh - 64px)}.dashboard-content.sidebar-open{margin-left:280px}.dashboard-content.sidebar-overlay{margin-left:0}.sidebar-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:998;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}[dir=rtl] .dashboard-content.sidebar-open{margin-left:0;margin-right:280px}.dark-theme .sidebar-backdrop{background:#000000b3}@media (max-width: 767px){.dashboard-content{padding-top:56px}}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #ffffff;--bg-secondary: #f5f5f5;--bg-elevated: #ffffff;--bg-elevated-alpha: rgba(255, 255, 255, .9);--bg-subtle: #fafafa;--bg-hover: #f0f0f0;--bg-active: #e7f3ff;--text-primary: #1a1a1a;--text-secondary: #666666;--text-tertiary: #999999;--border-color: #e0e0e0;--primary-color: #667eea;--primary-hover: #5568d3;--danger-color: #dc3545;--danger-bg: #fff5f5;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1)}[data-theme=dark]{--bg-primary: #1a1a1a;--bg-secondary: #121212;--bg-elevated: #242424;--bg-elevated-alpha: rgba(36, 36, 36, .9);--bg-subtle: #2a2a2a;--bg-hover: #333333;--bg-active: #2d3748;--text-primary: #ffffff;--text-secondary: #b0b0b0;--text-tertiary: #808080;--border-color: #3a3a3a;--primary-color: #818cf8;--primary-hover: #a5b4fc;--danger-color: #f56565;--danger-bg: #3a1f1f}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-secondary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}[dir=rtl]{direction:rtl}[dir=ltr]{direction:ltr}body.rtl{direction:rtl}body.ltr{direction:ltr}*{transition:background-color .3s ease,color .3s ease,border-color .3s ease}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}
