.warning-banner[data-astro-cid-pawjqkb7]{border:1px solid var(--warning);color:var(--warning);background:#ffaa001a;border-radius:8px;margin-bottom:1.5rem;padding:1rem 1.5rem;font-size:.85rem;line-height:1.5}.warning-banner[data-astro-cid-pawjqkb7] strong[data-astro-cid-pawjqkb7]{margin-bottom:.25rem;display:block}.section[data-astro-cid-pawjqkb7]{margin-bottom:1.5rem}.actions[data-astro-cid-pawjqkb7]{gap:.5rem;margin-bottom:1rem;display:flex}.btn-spinup[data-astro-cid-pawjqkb7]{color:var(--info);cursor:pointer;background:#00aaff1a;border:1px solid #0af6;border-radius:4px;padding:.6rem 1.2rem;font-family:JetBrains Mono,monospace;font-size:.85rem;transition:all .3s}.btn-spinup[data-astro-cid-pawjqkb7]:hover:not(:disabled){border-color:var(--info);background:#0af3;box-shadow:0 0 15px #00aaff4d}.btn-spinup[data-astro-cid-pawjqkb7]:disabled{opacity:.5;cursor:not-allowed}.fw-card{border:1px solid #00ff8826;border-left:4px solid var(--border);background:#1a1a2ecc;border-radius:8px;margin-bottom:1.5rem;transition:border-color .2s;overflow:hidden;box-shadow:0 2px 8px #0000004d}.fw-card:last-child{margin-bottom:0}.fw-card:hover{border-color:#00ff884d}.fw-card.has-enabled{border-left-color:var(--warning)}.fw-card.has-pending{border-left-color:gold}.fw-card-header{background:#00ff880d;border-bottom:1px solid #00ff881a;justify-content:space-between;align-items:center;padding:.8rem 1.2rem;display:flex}.fw-card-name{color:var(--accent);text-transform:uppercase;letter-spacing:.1em;font-size:1rem;font-weight:700}.fw-card-badges{align-items:center;gap:.4rem;display:flex}.fw-card-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:3px;padding:.15rem .4rem;font-size:.6rem}.fw-card-badge.pending{color:gold;background:#ffd70026;border:1px solid #ffd7004d;animation:2s infinite pulse}.fw-card-badge.enabled-count{color:var(--warning);background:#ffaa0026;border:1px solid #ffaa004d}.fw-card-body{padding:0}.fw-rule{border-bottom:1px solid #2a2a3e99;align-items:center;gap:1rem;padding:1rem 1.2rem;transition:background .2s;display:flex}.fw-rule:last-child{border-bottom:none}.fw-rule:hover{background:#00ff8808}.fw-rule-info{flex:1;min-width:0}.fw-rule-top{align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.fw-rule-label{color:var(--text-primary);font-size:.85rem;font-weight:600}.fw-rule-protocol{color:var(--text-muted);text-transform:uppercase;background:#0000004d;border:1px solid #2a2a3e80;border-radius:3px;padding:.1rem .4rem;font-size:.65rem}.fw-rule-pending{background:var(--warning);color:#000;border-radius:3px;padding:.1rem .4rem;font-size:.6rem;font-weight:700}.fw-rule-port{color:var(--text-muted);font-size:.75rem}.fw-rule-dns{color:var(--info);font-size:.75rem}.fw-rule-ip{align-items:center;gap:.5rem;margin-top:.4rem;display:flex}.fw-rule-ip label[data-astro-cid-pawjqkb7]{color:var(--text-muted);white-space:nowrap;margin-bottom:0;font-size:.7rem}.fw-rule-ip input[data-astro-cid-pawjqkb7]{border:1px solid var(--border);color:#c0d0c0;background:#000a05cc;border-radius:3px;flex:1;max-width:260px;padding:.3rem .5rem;font-family:inherit;font-size:.75rem}.fw-rule-ip input[data-astro-cid-pawjqkb7]:focus{border-color:var(--accent);outline:none}.fw-rule-ip input[data-astro-cid-pawjqkb7]::placeholder{color:#607080}.fw-rule-ip .btn-save-ip{background:var(--bg-card);border:1px solid var(--border);color:var(--accent);cursor:pointer;white-space:nowrap;border-radius:3px;padding:.3rem .5rem;font-family:inherit;font-size:.7rem;transition:border-color .2s}.fw-rule-ip .btn-save-ip:hover{border-color:var(--accent)}.fw-rule-toggle{flex-shrink:0}.connection-item{border-bottom:1px solid var(--border);align-items:center;gap:.75rem;padding:.5rem 0;display:flex}.connection-item:last-child{border-bottom:none}.connection-host{color:var(--accent);background:var(--bg-card);user-select:all;border-radius:4px;padding:.3rem .6rem;font-family:inherit;font-size:.85rem}.connection-label{color:var(--text-secondary);font-size:.8rem}.empty{text-align:center;color:var(--text-secondary);padding:2rem}.notice[data-astro-cid-pawjqkb7]{color:var(--text-muted);margin-top:1rem;font-size:.8rem;line-height:1.5}
