:root{--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--color-bg: #f8fafc;--color-surface: #ffffff;--color-text-main: #0f172a;--color-text-muted: #64748b;--color-border: #e2e8f0;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-text: #ffffff;--color-danger: #ef4444;--color-danger-hover: #dc2626;--color-success: #22c55e;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--radius-md: .5rem;--radius-lg: .75rem;--radius-full: 9999px}@media (prefers-color-scheme: dark){:root{--color-bg: #0f172a;--color-surface: #1e293b;--color-text-main: #f1f5f9;--color-text-muted: #94a3b8;--color-border: #334155;--color-primary: #3b82f6;--color-primary-hover: #60a5fa}}body{margin:0;font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text-main);line-height:1.5;-webkit-font-smoothing:antialiased}button{cursor:pointer;border:none;font-family:inherit;font-size:100%;line-height:inherit;margin:0;padding:0}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600}input{font-family:inherit}.app-container{min-height:100vh;display:flex;flex-direction:column}.dashboard-header{position:sticky;top:0;z-index:50;background-color:#fffc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center}@media (prefers-color-scheme: dark){.dashboard-header{background-color:#0f172acc}}.header-title{font-size:1.25rem;font-weight:700;background:linear-gradient(135deg,var(--color-primary),#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-.025em}.user-controls{display:flex;align-items:center;gap:1rem}.user-badge{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--color-text-muted);background:var(--color-surface);padding:.25rem .75rem .25rem .25rem;border-radius:var(--radius-full);border:1px solid var(--color-border)}.user-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover}.logout-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:var(--color-danger);background:transparent;border-radius:var(--radius-lg);transition:all .2s}.logout-btn:hover{background:#ef44441a}.dashboard-main{flex:1;padding:2rem;max-width:1400px;margin:0 auto;width:100%;box-sizing:border-box}.dashboard-controls{margin-bottom:2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.controls-left{display:flex;gap:.5rem;flex:1;min-width:200px}.controls-right{display:flex;gap:.5rem}.login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1rem}.login-card{background:var(--color-surface);padding:2.5rem;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:400px;text-align:center;border:1px solid var(--color-border)}.login-title{margin-bottom:1.5rem;font-size:1.5rem}.gateways-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;list-style:none;padding:0;margin:0}@media (max-width: 768px){.gateways-grid{grid-template-columns:1fr}}.gateway-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:box-shadow .2s}.gateway-card:hover{box-shadow:var(--shadow-md)}.gateway-header{padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;background:#00000005;border-bottom:1px solid var(--color-border);cursor:pointer;-webkit-user-select:none;user-select:none}.gateway-header h3{font-size:1rem}.gateway-body{padding:0 1.5rem 1.5rem;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.empty-state{padding:2rem;text-align:center;color:var(--color-text-muted);font-size:.875rem}.deployments-list{list-style:none;padding:0;margin:1rem 0 0;display:flex;flex-direction:column;gap:.75rem}.deployment-item{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.25rem;background:var(--color-bg)}.deployment-header{padding:.5rem .75rem;display:flex;align-items:center;justify-content:space-between}.deployment-info{display:flex;align-items:center;gap:.75rem}.dep-name{font-weight:500;font-size:.9rem}.dep-project{font-size:.75rem;color:var(--color-text-muted);background:#0000000d;padding:.1em .4em;border-radius:4px}.not-found-tag{font-size:.75rem;color:var(--color-danger);font-weight:500}.deployment-details{padding:.75rem;border-top:1px solid var(--color-border);background:#00000005;font-size:.85rem}.container-info{margin-bottom:.5rem}.container-name{font-weight:600;color:var(--color-primary);margin-bottom:.25rem}.env-list{margin:0;padding-left:1rem;color:var(--color-text-muted)}.env-list li{margin-bottom:.1rem}.add-exposure-form{margin-top:1.5rem;padding-top:1rem;border-top:1px dashed var(--color-border)}.form-label{display:block;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:.75rem}.form-row{display:flex;gap:.5rem;flex-wrap:wrap}.input-field{flex:1;min-width:140px;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-main);font-size:.875rem;transition:border-color .15s}.input-field:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb1a}.input-field:disabled{background:#0000000d;color:var(--color-text-muted)}.btn{padding:.5rem 1rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.btn-primary{background:var(--color-primary);color:var(--color-primary-text)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.7;cursor:not-allowed}.btn-danger-outline{border:1px solid var(--color-danger);color:var(--color-danger);background:transparent;padding:.3rem .75rem;font-size:.75rem}.btn-danger-outline:hover:not(:disabled){background:var(--color-danger);color:#fff}.btn-icon{background:transparent;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:1.2rem;line-height:1}.btn-icon:hover{background:#0000000d;color:var(--color-text-main)}.status-msg{font-size:.75rem;margin-top:.5rem}.status-error{color:var(--color-danger)}.status-success{color:var(--color-success)}.status-link{color:var(--color-primary);text-decoration:underline;margin-left:.25rem}.btn-secondary{padding:.5rem 1rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;transition:all .2s;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-main);cursor:pointer}.btn-secondary:hover:not(:disabled){background:#0000000d}.btn-secondary-sm{padding:.2rem .6rem;border-radius:var(--radius-sm);font-size:.75rem;background:transparent;border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer}.btn-secondary-sm:hover{background:#0000000d;color:var(--color-text-main)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:100;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content{background:var(--color-surface);padding:2rem;border-radius:var(--radius-lg);width:90%;max-width:500px;box-shadow:var(--shadow-xl);max-height:90vh;overflow-y:auto}.modal-actions{margin-top:1.5rem;display:flex;justify-content:flex-end;gap:.5rem}.form-group{margin-bottom:1rem;display:flex;flex-direction:column}.form-group label{font-size:.8rem;font-weight:600;margin-bottom:.3rem;color:var(--color-text-muted)}.env-var-row{display:flex;gap:.5rem;margin-bottom:.5rem;align-items:center}.btn-primary-outline{border:1px solid var(--color-primary);color:var(--color-primary);background:transparent;padding:.3rem .75rem;font-size:.75rem;border-radius:var(--radius-md);cursor:pointer}.btn-primary-outline:hover:not(:disabled){background:var(--color-primary);color:#fff}.view-toggles{display:flex;gap:0px}.view-toggles .btn{border-radius:0}.view-toggles .btn:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.view-toggles .btn:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}
