/* D2SCI — Acessos (Cadastro Perfil de Acessos)
   ============================================
   Estilos da ABA (namespace `acessos-`, src/js/forms/acessos.js) e do MODAL de
   dados (namespace `cdac-`, src/js/modals/acessos-dados.js). Usa as variaveis
   de tema do projeto (--card-bg, --primary, etc.) e o componente
   floating-label (src/css/components/floating-label.css). */

/* =========================================================================
   ABA: pesquisa + lista
   ========================================================================= */
.acessos-controls {
  display: flex;
  align-items: center;
  gap: .75rem;
  flex-wrap: wrap;
  margin-bottom: .75rem;
}
.acessos-search {
  position: relative;
  flex: 1 1 260px;
}
.acessos-search i {
  position: absolute;
  left: .75rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-muted);
  font-size: .85rem;
  pointer-events: none;
}
.acessos-search input {
  width: 100%;
  padding: .55rem .75rem .55rem 2.1rem;
  border: 1px solid var(--card-border);
  border-radius: var(--radius, .5rem);
  background: var(--card-bg);
  color: var(--text);
  font-size: .88rem;
}
.acessos-search input:focus {
  outline: none;
  border-color: var(--primary);
}
.acessos-novo-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .55rem .9rem;
  border: 1px solid var(--primary);
  border-radius: var(--radius, .5rem);
  background: var(--primary);
  color: #fff;
  font-size: .82rem;
  font-weight: 600;
  cursor: pointer;
  transition: filter .15s;
}
.acessos-novo-btn:hover { filter: brightness(1.08); }

.acessos-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .6rem;
  margin-bottom: .6rem;
}
.acessos-info {
  margin: 0;
  font-size: .82rem;
  font-weight: 600;
  color: var(--text-muted);
}

.acessos-lista {
  display: flex;
  flex-direction: column;
  gap: .55rem;
}
.acessos-vazio {
  padding: 1.25rem;
  text-align: center;
  color: var(--text-muted);
  font-style: italic;
}

.acessos-card {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .7rem .9rem;
  border: 1px solid var(--card-border);
  border-radius: var(--radius, .5rem);
  background: var(--card-bg);
  transition: border-color .15s;
}
.acessos-card:hover { border-color: var(--primary); }
.acessos-card-body { flex: 1 1 auto; min-width: 0; }
.acessos-card-title {
  font-size: .95rem;
  font-weight: 700;
  color: var(--text);
}
.acessos-card-meta {
  margin-top: .15rem;
  font-size: .78rem;
  color: var(--text-muted);
}
.acessos-card-badges {
  margin-top: .5rem;
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  align-items: center;
}

.acessos-badge {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .25rem .6rem;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 700;
  white-space: nowrap;
}
.acessos-badge--ok       { background: color-mix(in srgb, var(--success) 18%, transparent); color: var(--success); }
.acessos-badge--pendente { background: color-mix(in srgb, var(--warning) 20%, transparent); color: var(--warning); }

.acessos-perm {
  display: inline-block;
  padding: .2rem .55rem;
  border-radius: 999px;
  font-size: .7rem;
  font-weight: 600;
  white-space: nowrap;
}
.acessos-perm--on  { background: color-mix(in srgb, var(--primary) 16%, transparent); color: var(--primary); }
.acessos-perm--off { background: color-mix(in srgb, var(--text-muted) 14%, transparent); color: var(--text-muted); text-decoration: line-through; }

.acessos-ver-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  flex: 0 0 auto;
  border: 1px solid var(--card-border);
  border-radius: var(--radius, .5rem);
  background: var(--card-bg);
  color: var(--text-muted);
  cursor: pointer;
  transition: color .15s, border-color .15s;
}
.acessos-ver-btn:hover { color: var(--primary); border-color: var(--primary); }

/* =========================================================================
   MODAL: dados do acesso
   ========================================================================= */
.cdac-open { overflow: hidden; }

.cdac-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 1.25rem;
  background: rgba(0, 0, 0, .5);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}
.cdac-overlay.is-open { display: flex; }

.cdac-dialog {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 560px;
  max-height: 90vh;
  background: var(--card-bg);
  border: 1px solid var(--card-border);
  border-radius: calc(var(--radius, .5rem) * 1.5);
  box-shadow: 0 20px 60px rgba(0, 0, 0, .35);
  overflow: hidden;
}

.cdac-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--card-border);
}
.cdac-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--text);
}
.cdac-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border: none;
  border-radius: var(--radius, .5rem);
  background: transparent;
  color: var(--text-muted);
  font-size: 1rem;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.cdac-close:hover { background: var(--primary-soft, rgba(0,0,0,.05)); color: var(--text); }

.cdac-body {
  padding: 1rem 1.25rem;
  overflow-y: auto;
}
.cdac-info {
  margin: 0 0 .6rem;
  font-size: .82rem;
  font-weight: 600;
  color: var(--text-muted);
}

.cdac-form {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .6rem .75rem;
  align-items: center;
}
.cdac-field { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.cdac-field--s1 { grid-column: span 1; }
.cdac-field--s2 { grid-column: span 2; }
.cdac-field--s3 { grid-column: 1 / -1; }

/* Corrida de campos logicos (TSciForm.Html): as 5 permissoes numa linha. */
.cdac-checkrow {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .35rem .75rem;
}

.cdac-perms {
  margin-top: 1rem;
  padding-top: .85rem;
  border-top: 1px solid var(--card-border);
}
.cdac-perms-title {
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: var(--text-muted);
  margin-bottom: .6rem;
}
.cdac-perms-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .5rem .75rem;
}

.cdac-checkwrap {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  align-self: flex-start;
  padding: .45rem 0;
  cursor: pointer;
}
.cdac-checkwrap input[type="checkbox"] {
  width: 1.05rem;
  height: 1.05rem;
  accent-color: var(--primary);
  cursor: pointer;
}
.cdac-checkwrap span {
  font-size: .82rem;
  color: var(--text);
}

.cdac-acoes {
  display: flex;
  justify-content: flex-end;
  gap: .5rem;
  padding: 1rem 1.25rem;
  border-top: 1px solid var(--card-border);
  background: var(--app-bg, transparent);
}
.cdac-gravar-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .45rem .85rem;
  border: 1px solid var(--success);
  border-radius: var(--radius, .5rem);
  background: var(--success);
  color: #fff;
  font-size: .8rem;
  font-weight: 700;
  cursor: pointer;
  transition: filter .15s, opacity .15s;
}
.cdac-gravar-btn:hover { filter: brightness(1.08); }
.cdac-gravar-btn:disabled { opacity: .6; cursor: default; filter: none; }
.cdac-fechar-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .45rem .85rem;
  border: 1px solid var(--card-border);
  border-radius: var(--radius, .5rem);
  background: var(--card-bg);
  color: var(--text);
  font-size: .8rem;
  font-weight: 600;
  cursor: pointer;
  transition: filter .15s, background .15s, border-color .15s, color .15s;
}
.cdac-fechar-btn:hover { border-color: var(--primary); color: var(--primary); }

@media (max-width: 640px) {
  .cdac-form { grid-template-columns: 1fr; }
  .cdac-field--s1,
  .cdac-field--s2 { grid-column: 1 / -1; }
  .cdac-perms-grid { grid-template-columns: repeat(2, 1fr); }
}
