/**
 * Firewall Hardware - tema alinhado ao plugin Firewall (Sophos XGS)
 */
:root{
  --fwhw-primary:#003366;--fwhw-primary-light:#0a4a8a;--fwhw-primary-dark:#002244;
  --fwhw-accent:#0078d4;--fwhw-success:#0f9d58;--fwhw-danger:#d93025;--fwhw-warning:#e8a317;
  --fwhw-purple:#6b4fbb;
  --fwhw-surface:#f7f8fa;--fwhw-surface-alt:#eef1f5;
  --fwhw-border:#dde1e8;--fwhw-border-light:#e8ecf1;
  --fwhw-text:#1a2332;--fwhw-text-muted:#5f6b7a;--fwhw-text-light:#8896a7;
  --fwhw-radius:10px;--fwhw-radius-lg:14px;--fwhw-radius-xl:20px;
  --fwhw-shadow:0 2px 12px rgba(0,51,102,.08);
  --fwhw-shadow-lg:0 8px 32px rgba(0,51,102,.12);
  --fwhw-shadow-hover:0 12px 40px rgba(0,51,102,.18);
  --fwhw-transition:.25s cubic-bezier(.4,0,.2,1);
}

.fwhw-container{max-width:1800px;margin:0 auto;padding:0 20px}

/* ── Topbar ───────────────────────────────────────────── */
.fwhw-topbar{background:linear-gradient(135deg,var(--fwhw-primary) 0%,var(--fwhw-primary-dark) 100%);color:#fff;border-radius:var(--fwhw-radius-xl);padding:1.5rem 1.75rem;margin-bottom:1.25rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;box-shadow:var(--fwhw-shadow-lg)}
.fwhw-topbar-left{display:flex;align-items:center;gap:14px;min-width:0}
.fwhw-topbar-icon{font-size:2.2rem;opacity:.9}
.fwhw-topbar-title{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:-.02em}
.fwhw-topbar-sub{opacity:.75;font-size:.88rem}
.fwhw-topbar-right{display:flex;gap:.6rem;flex-wrap:wrap}

/* ── Stats por propriedade ────────────────────────────── */
.fwhw-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.25rem}
.fwhw-stat{background:#fff;border:1px solid var(--fwhw-border-light);border-radius:var(--fwhw-radius-lg);padding:1.1rem 1.25rem;box-shadow:var(--fwhw-shadow);position:relative;overflow:hidden}
.fwhw-stat::before{content:'';position:absolute;top:0;left:0;width:100%;height:3px;background:var(--fwhw-text-light)}
.fwhw-stat.fwhw-badge-client::before{background:var(--fwhw-success)}
.fwhw-stat.fwhw-badge-rent::before{background:var(--fwhw-warning)}
.fwhw-stat.fwhw-badge-own::before{background:var(--fwhw-accent)}
.fwhw-stat-val{font-size:1.8rem;font-weight:700;line-height:1;color:var(--fwhw-text)}
.fwhw-stat-lbl{color:var(--fwhw-text-muted);font-size:.83rem;font-weight:500;margin-top:4px}

/* ── Toolbar ──────────────────────────────────────────── */
.fwhw-toolbar{background:#fff;padding:1rem 1.25rem;border-radius:var(--fwhw-radius-lg);box-shadow:var(--fwhw-shadow);border:1px solid var(--fwhw-border-light);margin-bottom:1.5rem;display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}
.fwhw-field{display:flex;flex-direction:column;gap:5px;min-width:190px}
.fwhw-field-grow{flex:1;min-width:260px}
.fwhw-field-label{font-size:.78rem;font-weight:600;color:var(--fwhw-text-muted);display:flex;align-items:center;gap:5px}
.fwhw-input,.fwhw-select{padding:9px 13px;border:2px solid var(--fwhw-border);border-radius:var(--fwhw-radius);font-size:.9rem;background:#fff;transition:border-color var(--fwhw-transition);width:100%}
.fwhw-input:focus,.fwhw-select:focus{outline:none;border-color:var(--fwhw-accent);box-shadow:0 0 0 3px rgba(0,120,212,.12)}
.fwhw-counter{color:var(--fwhw-text-muted);font-weight:600;font-size:.85rem;white-space:nowrap;padding-bottom:10px}

/* ── Botões ───────────────────────────────────────────── */
.fwhw-btn{padding:9px 18px;border-radius:var(--fwhw-radius);border:none;font-weight:600;cursor:pointer;transition:all var(--fwhw-transition);text-decoration:none;display:inline-flex;align-items:center;gap:6px;font-size:.88rem;line-height:1.4}
.fwhw-btn-primary{background:linear-gradient(135deg,var(--fwhw-primary),var(--fwhw-primary-light));color:#fff}
.fwhw-btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,51,102,.25);color:#fff}
.fwhw-btn-white{background:#fff;color:var(--fwhw-primary)}
.fwhw-btn-white:hover{background:var(--fwhw-surface);transform:translateY(-2px);color:var(--fwhw-primary)}
.fwhw-btn-ghost{background:transparent;color:var(--fwhw-text-muted);border:2px solid var(--fwhw-border)}
.fwhw-btn-ghost:hover{background:var(--fwhw-surface);color:var(--fwhw-text)}
.fwhw-btn-icon{background:transparent;border:none;color:var(--fwhw-danger);cursor:pointer;padding:4px 6px;border-radius:6px;font-size:1rem}
.fwhw-btn-icon:hover{background:rgba(217,48,37,.1)}

/* ── Grade de clientes ────────────────────────────────── */
.fwhw-section-title{font-size:1.05rem;font-weight:700;color:var(--fwhw-text);margin:0 0 .9rem;display:flex;align-items:center;gap:8px}
.fwhw-client-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;margin-bottom:2rem}
.fwhw-client-card{background:#fff;border:1px solid var(--fwhw-border-light);border-radius:var(--fwhw-radius-lg);padding:1rem 1.15rem;display:flex;align-items:center;gap:14px;cursor:pointer;box-shadow:var(--fwhw-shadow);transition:transform var(--fwhw-transition),box-shadow var(--fwhw-transition)}
.fwhw-client-card:hover{transform:translateY(-3px);box-shadow:var(--fwhw-shadow-hover);border-color:var(--fwhw-accent)}
.fwhw-client-avatar{width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,var(--fwhw-primary),var(--fwhw-primary-light));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;flex-shrink:0}
.fwhw-client-info{flex:1;min-width:0}
.fwhw-client-name{font-weight:600;color:var(--fwhw-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fwhw-client-meta{display:flex;gap:12px;flex-wrap:wrap;color:var(--fwhw-text-muted);font-size:.8rem;margin-top:3px}
.fwhw-client-meta span{display:inline-flex;align-items:center;gap:4px}
.fwhw-client-arrow{color:var(--fwhw-text-light);flex-shrink:0}

/* ── Breadcrumb ───────────────────────────────────────── */
.fwhw-breadcrumb{display:flex;align-items:center;gap:10px;margin-bottom:1rem;flex-wrap:wrap}
.fwhw-breadcrumb-sep{color:var(--fwhw-text-light)}
.fwhw-breadcrumb-current{font-weight:700;color:var(--fwhw-text)}

/* ── Grade / Card de hardware ─────────────────────────── */
.fwhw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:1.5rem;margin-bottom:2rem;align-items:start}
.fwhw-card-wrap{display:flex;flex-direction:column;gap:0}
.fwhw-card{background:#fff;border:1px solid var(--fwhw-border-light);border-radius:var(--fwhw-radius-xl);box-shadow:var(--fwhw-shadow);overflow:hidden;transition:box-shadow var(--fwhw-transition)}
.fwhw-card:hover{box-shadow:var(--fwhw-shadow-hover)}
.fwhw-card-head{background:linear-gradient(135deg,var(--fwhw-primary) 0%,var(--fwhw-primary-light) 100%);color:#fff;padding:1.1rem 1.35rem;display:flex;justify-content:space-between;align-items:center;gap:10px}
.fwhw-card-title{font-size:1.08rem;font-weight:600;display:flex;align-items:center;gap:9px;min-width:0}
.fwhw-card-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fwhw-card-body{padding:1.15rem 1.35rem}
.fwhw-card-foot{padding:.75rem 1.35rem;background:var(--fwhw-surface);border-top:1px solid var(--fwhw-border-light);display:flex;gap:.5rem}
.fwhw-card-foot .fwhw-btn{flex:1;justify-content:center}

/* ── Fotos ────────────────────────────────────────────── */
.fwhw-photos{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:1rem}
.fwhw-photo{margin:0;border:1px solid var(--fwhw-border);border-radius:var(--fwhw-radius);overflow:hidden;background:var(--fwhw-surface)}
.fwhw-photo img{width:100%;height:120px;object-fit:cover;display:block;cursor:zoom-in;transition:transform var(--fwhw-transition)}
.fwhw-photo img:hover{transform:scale(1.04)}
.fwhw-photo figcaption{font-size:.74rem;color:var(--fwhw-text-muted);padding:5px 8px;background:#fff;border-top:1px solid var(--fwhw-border-light);display:flex;align-items:center;gap:4px;font-weight:600}

/* ── Ficha técnica ────────────────────────────────────── */
.fwhw-specs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:.9rem}
.fwhw-spec{background:var(--fwhw-surface);border-radius:var(--fwhw-radius);padding:.5rem .7rem;border-left:3px solid var(--fwhw-primary);min-width:0}
.fwhw-spec-lbl{display:flex;align-items:center;gap:5px;font-size:.72rem;color:var(--fwhw-text-light);margin-bottom:2px}
.fwhw-spec-val{font-weight:600;color:var(--fwhw-text);font-size:.86rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.fwhw-spec-val.mono,.fwhw-link-val.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem}
.fwhw-na{color:var(--fwhw-text-light);font-style:italic}

/* ── Blocos de texto ──────────────────────────────────── */
.fwhw-block{margin-top:.85rem}
.fwhw-block-title{display:flex;align-items:center;gap:6px;font-size:.82rem;font-weight:700;color:var(--fwhw-text-muted);padding-bottom:.4rem;border-bottom:2px solid var(--fwhw-border-light);margin-bottom:.5rem}
.fwhw-block-text{font-size:.86rem;color:var(--fwhw-text);line-height:1.5;background:var(--fwhw-surface);padding:.6rem .75rem;border-radius:var(--fwhw-radius)}
.fwhw-none{color:var(--fwhw-text-light);font-size:.83rem;padding:.55rem .7rem;background:var(--fwhw-surface);border-radius:var(--fwhw-radius);display:flex;align-items:center;gap:6px}
.fwhw-comment{margin-top:.85rem;font-size:.84rem;color:var(--fwhw-text-muted);background:rgba(232,163,23,.07);border-left:3px solid var(--fwhw-warning);padding:.55rem .75rem;border-radius:0 var(--fwhw-radius) var(--fwhw-radius) 0}

/* ── Links (WAN) ──────────────────────────────────────── */
.fwhw-link{background:var(--fwhw-surface);border-radius:var(--fwhw-radius);padding:.6rem .75rem;margin-bottom:6px;border-left:3px solid var(--fwhw-accent)}
.fwhw-link.is-main{border-left-color:var(--fwhw-success);background:rgba(15,157,88,.06)}
.fwhw-link-head{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:5px}
.fwhw-link-name{font-weight:700;font-size:.88rem;color:var(--fwhw-text);display:inline-flex;align-items:center;gap:5px}
.fwhw-link-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px}
.fwhw-link-cell{min-width:0}
.fwhw-link-lbl{display:block;font-size:.68rem;color:var(--fwhw-text-light);text-transform:uppercase;letter-spacing:.04em}
.fwhw-link-val{display:block;font-size:.83rem;font-weight:600;color:var(--fwhw-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ── Badges ───────────────────────────────────────────── */
.fwhw-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:12px;font-size:.74rem;font-weight:700;white-space:nowrap}
.fwhw-badge-client{background:rgba(15,157,88,.14);color:var(--fwhw-success)}
.fwhw-badge-rent{background:rgba(232,163,23,.16);color:#9a6a04}
.fwhw-badge-own{background:rgba(0,120,212,.14);color:var(--fwhw-accent)}
.fwhw-badge-muted{background:rgba(136,150,167,.16);color:var(--fwhw-text-muted)}
.fwhw-badge-main{background:rgba(15,157,88,.16);color:var(--fwhw-success)}
.fwhw-badge-band{background:rgba(107,79,187,.14);color:var(--fwhw-purple)}
.fwhw-badge-count{background:rgba(0,120,212,.14);color:var(--fwhw-accent)}
.fwhw-badge-model{background:rgba(0,51,102,.1);color:var(--fwhw-primary)}
.fwhw-card-head .fwhw-badge{background:rgba(255,255,255,.22);color:#fff}

/* ── Bloco embutido no card do plugin Firewall ────────── */
.fwhw-embed{margin-top:.85rem;border:1px solid var(--fwhw-border-light);border-radius:var(--fwhw-radius);overflow:hidden;background:#fff}
.fwhw-embed-head{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:linear-gradient(135deg,rgba(0,51,102,.06),rgba(0,120,212,.06));font-size:.82rem;font-weight:700;color:var(--fwhw-primary);border-bottom:1px solid var(--fwhw-border-light)}
.fwhw-embed-head span{display:inline-flex;align-items:center;gap:6px}
.fwhw-embed-item{padding:.65rem .75rem;border-bottom:1px dashed var(--fwhw-border-light)}
.fwhw-embed-item:last-child{border-bottom:none}
.fwhw-embed-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;flex-wrap:wrap}
.fwhw-embed-title a{color:var(--fwhw-text);font-weight:700;font-size:.88rem;text-decoration:none;display:inline-flex;align-items:center;gap:5px}
.fwhw-embed-title a:hover{color:var(--fwhw-accent)}
.fwhw-embed-thumbs{display:flex;gap:8px;margin-bottom:7px}
.fwhw-thumb{margin:0;flex:1;border:1px solid var(--fwhw-border);border-radius:8px;overflow:hidden;background:var(--fwhw-surface)}
.fwhw-thumb img{width:100%;height:74px;object-fit:cover;display:block;cursor:zoom-in}
.fwhw-thumb figcaption{font-size:.68rem;color:var(--fwhw-text-muted);text-align:center;padding:3px;background:#fff;border-top:1px solid var(--fwhw-border-light)}
.fwhw-embed-specs{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:7px}
.fwhw-chip{display:inline-flex;align-items:center;gap:4px;background:var(--fwhw-surface-alt);color:var(--fwhw-text-muted);border-radius:8px;padding:2px 8px;font-size:.74rem;font-weight:600}
.fwhw-embed-links{display:flex;flex-direction:column;gap:4px}
.fwhw-embed-link{background:var(--fwhw-surface);border-radius:8px;padding:.4rem .6rem;border-left:3px solid var(--fwhw-accent);display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:space-between}
.fwhw-embed-link.is-main{border-left-color:var(--fwhw-success)}
.fwhw-el-name{font-weight:700;font-size:.8rem;color:var(--fwhw-text);display:inline-flex;align-items:center;gap:4px}
.fwhw-el-meta{display:inline-flex;flex-wrap:wrap;gap:5px}
.fwhw-el-tag,.fwhw-el-ip,.fwhw-el-gw,.fwhw-el-band{font-size:.72rem;font-weight:700;border-radius:6px;padding:1px 7px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.fwhw-el-tag{background:rgba(136,150,167,.18);color:var(--fwhw-text-muted)}
.fwhw-el-ip{background:rgba(0,120,212,.12);color:var(--fwhw-accent)}
.fwhw-el-gw{background:rgba(15,157,88,.12);color:var(--fwhw-success)}
.fwhw-el-band{background:rgba(107,79,187,.12);color:var(--fwhw-purple)}
.fwhw-embed-freetext,.fwhw-embed-hw{font-size:.78rem;color:var(--fwhw-text-muted);margin-top:6px;display:flex;align-items:flex-start;gap:5px;line-height:1.4}
.fwhw-shortcut{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:600;color:var(--fwhw-accent);text-decoration:none;margin-top:5px}
.fwhw-shortcut:hover{text-decoration:underline}

/* ── Bloco do plugin Firewall dentro do painel Hardware ─ */
.fwhw-fwbox{margin-top:-6px;background:#fff;border:1px solid var(--fwhw-border-light);border-top:none;border-radius:0 0 var(--fwhw-radius-lg) var(--fwhw-radius-lg);padding:.8rem 1.35rem 1rem;box-shadow:var(--fwhw-shadow)}
.fwhw-fwbox-head{font-size:.8rem;font-weight:700;color:var(--fwhw-primary);display:flex;align-items:center;gap:6px;padding-bottom:.4rem;border-bottom:2px solid var(--fwhw-border-light);margin-bottom:.5rem}
.fwhw-fwbox-name{font-weight:700;font-size:.9rem;color:var(--fwhw-text);margin-bottom:6px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.fwhw-fwbox-host{display:flex;align-items:center;gap:6px;background:var(--fwhw-surface);border-radius:8px;padding:.4rem .6rem;margin-bottom:4px;text-decoration:none;color:var(--fwhw-text);font-size:.84rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;transition:background var(--fwhw-transition)}
.fwhw-fwbox-host:hover{background:var(--fwhw-surface-alt);color:var(--fwhw-accent)}
.fwhw-fwbox-link{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;font-weight:600;color:var(--fwhw-accent);text-decoration:none;margin-top:5px}
.fwhw-fwbox-link:hover{text-decoration:underline}

/* ── Aba dentro da Entidade / Firewall ────────────────── */
.fwhw-tab-wrap{padding:1rem 0}
.fwhw-tab-wrap .fwhw-grid{grid-template-columns:repeat(auto-fill,minmax(400px,1fr))}

/* ── Formulário de links ──────────────────────────────── */
.fwhw-formbox{background:#fff;border:1px solid var(--fwhw-border-light);border-radius:var(--fwhw-radius-lg);box-shadow:var(--fwhw-shadow);margin-bottom:1.25rem;overflow:hidden}
.fwhw-formbox-title{background:linear-gradient(135deg,var(--fwhw-primary),var(--fwhw-primary-light));color:#fff;padding:.75rem 1.15rem;font-weight:600;font-size:.95rem;display:flex;align-items:center;gap:8px}
.fwhw-formbox-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.85rem;padding:1.15rem}
.fwhw-fld{display:flex;flex-direction:column;gap:4px;min-width:0}
.fwhw-fld label{font-size:.78rem;font-weight:600;color:var(--fwhw-text-muted)}
.fwhw-fld-wide{grid-column:span 2}
.fwhw-fld-check{justify-content:flex-end}
.fwhw-fld-check label{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--fwhw-text)}
.fwhw-formbox-foot{padding:0 1.15rem 1.15rem;display:flex;justify-content:flex-end}

/* ── Tabela ───────────────────────────────────────────── */
.fwhw-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--fwhw-radius-lg);overflow:hidden;box-shadow:var(--fwhw-shadow)}
.fwhw-table thead{background:linear-gradient(135deg,var(--fwhw-primary),var(--fwhw-primary-light));color:#fff}
.fwhw-table th{padding:.75rem .9rem;text-align:left;font-weight:600;font-size:.82rem}
.fwhw-table td{padding:.7rem .9rem;border-bottom:1px solid var(--fwhw-border-light);font-size:.86rem;vertical-align:top}
.fwhw-table tbody tr:hover{background:var(--fwhw-surface)}
.fwhw-table tbody tr:last-child td{border-bottom:none}
.fwhw-table code{background:var(--fwhw-surface-alt);padding:1px 6px;border-radius:5px;font-size:.8rem}
.fwhw-td-sub{font-size:.76rem;color:var(--fwhw-text-light);margin-top:2px}

/* ── Upload ───────────────────────────────────────────── */
.fwhw-upload{display:flex;flex-direction:column;gap:6px}
.fwhw-upload-preview img{max-width:190px;max-height:110px;border-radius:8px;border:1px solid var(--fwhw-border);cursor:zoom-in;display:block}
.fwhw-upload-del{font-size:.78rem;color:var(--fwhw-danger);display:flex;align-items:center;gap:5px}
.fwhw-hint{font-size:.72rem;color:var(--fwhw-text-light)}
.fwhw-req{color:var(--fwhw-danger)}

/* ── Estado vazio ─────────────────────────────────────── */
.fwhw-empty{text-align:center;padding:2.5rem 2rem;background:#fff;border-radius:var(--fwhw-radius-xl);box-shadow:var(--fwhw-shadow);border:1px solid var(--fwhw-border-light)}
.fwhw-empty .ti{font-size:3rem;opacity:.15;margin-bottom:.75rem;display:block}
.fwhw-empty h3{color:var(--fwhw-text-muted);font-weight:600;margin-bottom:5px}
.fwhw-empty p{color:var(--fwhw-text-light);margin-bottom:1rem}

/* ── Lightbox ─────────────────────────────────────────── */
.fwhw-lightbox{position:fixed;inset:0;background:rgba(10,20,35,.88);z-index:99999;display:flex;align-items:center;justify-content:center;cursor:zoom-out;padding:2rem}
.fwhw-lightbox img{max-width:95%;max-height:95%;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.fwhw-lightbox-close{position:absolute;top:18px;right:26px;color:#fff;font-size:2.4rem;line-height:1;cursor:pointer;opacity:.8}
.fwhw-lightbox-close:hover{opacity:1}

/* ── Responsivo ───────────────────────────────────────── */
@media (max-width:768px){
  .fwhw-grid{grid-template-columns:1fr}
  .fwhw-photos{grid-template-columns:1fr}
  .fwhw-topbar{flex-direction:column;align-items:flex-start}
  .fwhw-fld-wide{grid-column:span 1}
}

/* ══════════════════════════════════════════════════════════════
   Tela central de permissões (front/permission.php)
   ══════════════════════════════════════════════════════════════ */
.fwhw-perm-hint{display:flex;align-items:flex-start;gap:8px;background:rgba(0,120,212,.07);border-left:3px solid var(--fwhw-accent);color:var(--fwhw-text-muted);font-size:.86rem;line-height:1.5;padding:.7rem .9rem;border-radius:0 var(--fwhw-radius) var(--fwhw-radius) 0;margin-bottom:1.1rem}
.fwhw-perm-hint .ti{color:var(--fwhw-accent);font-size:1.05rem;flex-shrink:0;margin-top:1px}
.fwhw-perm-wrap{overflow-x:auto;border-radius:var(--fwhw-radius-lg)}
.fwhw-perm-table{min-width:760px}
.fwhw-perm-table th,.fwhw-perm-table td{vertical-align:middle}
.fwhw-perm-table td{padding:.6rem .9rem}
.fwhw-perm-profile{min-width:230px;text-align:left}
.fwhw-perm-col{text-align:center;width:110px}
.fwhw-perm-th{display:flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}
.fwhw-perm-all{display:block;margin:4px auto 0;background:rgba(255,255,255,.18);border:none;color:#fff;font-size:.66rem;font-weight:600;padding:1px 8px;border-radius:8px;cursor:pointer;letter-spacing:.03em;text-transform:uppercase;transition:background var(--fwhw-transition)}
.fwhw-perm-all:hover{background:rgba(255,255,255,.34)}
.fwhw-perm-on{color:var(--fwhw-success);font-weight:600;display:inline-flex;align-items:center;gap:3px}
.fwhw-perm-off{color:var(--fwhw-text-light);display:inline-flex;align-items:center;gap:3px}
.fwhw-btn-xs{padding:3px 10px;font-size:.72rem;border-radius:7px}
.fwhw-perm-row-all{white-space:nowrap}

/* interruptor */
.fwhw-switch{position:relative;display:inline-flex;cursor:pointer;margin:0}
/* input ocupa toda a area do interruptor: continua invisivel, mas
   permanece clicavel e navegavel por teclado */
.fwhw-switch input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}
.fwhw-switch-box{width:26px;height:26px;border-radius:8px;border:2px solid var(--fwhw-border);background:#fff;display:flex;align-items:center;justify-content:center;transition:all var(--fwhw-transition)}
.fwhw-switch-box .ti{font-size:.9rem;color:#fff;opacity:0;transition:opacity var(--fwhw-transition)}
.fwhw-switch:hover .fwhw-switch-box{border-color:var(--fwhw-accent)}
.fwhw-switch input:checked + .fwhw-switch-box{background:var(--fwhw-success);border-color:var(--fwhw-success)}
.fwhw-switch input:checked + .fwhw-switch-box .ti{opacity:1}
.fwhw-switch input:focus-visible + .fwhw-switch-box{box-shadow:0 0 0 3px rgba(0,120,212,.25)}

.fwhw-perm-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:1.1rem;padding:1rem 1.15rem;background:#fff;border:1px solid var(--fwhw-border-light);border-radius:var(--fwhw-radius-lg);box-shadow:var(--fwhw-shadow)}
.fwhw-perm-note{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--fwhw-text-muted)}
.fwhw-perm-note .ti{color:var(--fwhw-warning)}
.fwhw-perm-alt{margin-top:1rem;font-size:.84rem;color:var(--fwhw-text-muted);display:flex;align-items:center;gap:6px}
.fwhw-perm-alt .ti{color:var(--fwhw-warning)}
.fwhw-perm-alt a{color:var(--fwhw-accent);font-weight:600;text-decoration:none}
.fwhw-perm-alt a:hover{text-decoration:underline}

@media (max-width:768px){
  .fwhw-perm-foot{flex-direction:column;align-items:stretch}
  .fwhw-perm-foot .fwhw-btn{justify-content:center}
}
.fwhw-btn-onblue{color:#fff;border-color:rgba(255,255,255,.45)}
.fwhw-btn-onblue:hover{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.75)}

/* escopo (entidade ativa) na topbar do painel */
.fwhw-scope{display:inline-flex;align-items:center;gap:5px;margin-left:10px;padding:2px 10px;border-radius:12px;background:rgba(255,255,255,.16);font-size:.78rem;font-weight:600;white-space:nowrap}
@media (max-width:768px){.fwhw-scope{margin-left:0;margin-top:6px}}
