/* =====================================================================
   NEXUS · §4.13 Security & Access
   ===================================================================== */
body.nx-sec { background: linear-gradient(180deg, var(--nx-ink-950), var(--nx-ink-900)); color: #FFF; min-height: 100vh; margin: 0; }
.sec-shell { max-width: 1440px; margin: 0 auto; padding: 20px; }

.sec-hero {
  background: linear-gradient(135deg, rgba(239, 68, 68, 0.08), rgba(147, 51, 234, 0.10));
  border: 1px solid rgba(239, 68, 68, 0.2);
  border-radius: 16px;
  padding: 28px 32px;
  margin-bottom: 18px;
}
.sec-hero .kicker { font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.14em; color: #FCA5A5; font-weight: 900; text-transform: uppercase; }
.sec-hero h1 { font-size: 30px; font-weight: 900; letter-spacing: -0.02em; margin: 8px 0 10px; }
.sec-hero .lead { font-size: 14px; color: rgba(255,255,255,0.7); max-width: 760px; line-height: 1.55; }

.sec-kpis { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; margin-bottom: 18px; }
.sec-kpi {
  padding: 14px 16px;
  background: rgba(15, 23, 42, 0.75);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
}
.sec-kpi .lbl { font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.1em; color: rgba(255,255,255,0.55); font-weight: 900; text-transform: uppercase; }
.sec-kpi .val { font-family: var(--font-mono); font-size: 24px; font-weight: 900; margin-top: 4px; }
.sec-kpi .d   { font-size: 11px; color: rgba(255,255,255,0.55); margin-top: 2px; }
.sec-kpi.ok    { border-color: rgba(16,185,129,0.35); background: rgba(6, 78, 59, 0.14); }
.sec-kpi.ok .val    { color: #6EE7B7; }
.sec-kpi.warn  { border-color: rgba(245, 158, 11, 0.35); background: rgba(120, 53, 15, 0.14); }
.sec-kpi.warn .val  { color: #FBBF24; }
.sec-kpi.alert { border-color: rgba(239, 68, 68, 0.35); background: rgba(120, 24, 24, 0.14); }
.sec-kpi.alert .val { color: #FCA5A5; }

.sec-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 18px; }
@media (max-width: 900px) { .sec-grid { grid-template-columns: 1fr; } }

.sec-card {
  background: rgba(15, 23, 42, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 20px;
}
.sec-card h3 { font-size: 14px; font-weight: 900; margin: 0 0 4px; letter-spacing: -0.01em; }
.sec-card .sub { font-size: 12px; color: rgba(255, 255, 255, 0.55); margin-bottom: 12px; font-family: var(--font-mono); letter-spacing: 0.06em; }

/* Role matrix */
.rmx { display: grid; grid-template-columns: 140px repeat(6, 1fr); gap: 4px; font-family: var(--font-mono); font-size: 11px; }
.rmx .h  { padding: 8px 6px; font-size: 9px; letter-spacing: 0.1em; color: rgba(255,255,255,0.55); font-weight: 900; text-align: center; text-transform: uppercase; }
.rmx .r  { padding: 8px 10px; color: #FFF; font-weight: 700; background: rgba(255,255,255,0.03); border-radius: 4px; letter-spacing: 0.04em; }
.rmx .c  { padding: 8px; text-align: center; border-radius: 4px; }
.rmx .c.full   { background: rgba(16,185,129,0.15); color: #6EE7B7; }
.rmx .c.own    { background: rgba(6,182,212,0.15); color: #67E8F9; }
.rmx .c.read   { background: rgba(148,163,184,0.10); color: rgba(255,255,255,0.5); }
.rmx .c.none   { background: rgba(0,0,0,0.3);       color: rgba(255,255,255,0.25); }

/* Session table */
.sess-row {
  display: grid; grid-template-columns: 140px 140px 130px 120px 1fr 90px;
  gap: 10px; align-items: center;
  padding: 10px 12px;
  background: rgba(0,0,0,0.3); border-radius: 6px; margin-bottom: 4px;
  font-family: var(--font-mono); font-size: 11px;
}
.sess-row .who  { color: #FFF; font-weight: 700; letter-spacing: 0.04em; }
.sess-row .role { color: #67E8F9; }
.sess-row .dev  { color: rgba(255,255,255,0.6); }
.sess-row .ip   { color: rgba(255,255,255,0.55); }
.sess-row .last { color: rgba(255,255,255,0.65); }
.sess-row .mfa {
  padding: 2px 6px; border-radius: 4px; text-align: center; font-size: 9px; letter-spacing: 0.06em; font-weight: 900;
}
.sess-row .mfa.on  { background: rgba(16,185,129,0.15); color: #6EE7B7; }
.sess-row .mfa.off { background: rgba(239,68,68,0.15);  color: #FCA5A5; }

/* Audit feed */
.audit-row {
  display: grid; grid-template-columns: 70px 90px 180px 1fr 80px;
  gap: 8px; align-items: center;
  padding: 8px 12px; background: rgba(0,0,0,0.3);
  border-radius: 6px; margin-bottom: 3px;
  font-family: var(--font-mono); font-size: 10px;
}
.audit-row .t   { color: rgba(255,255,255,0.45); font-weight: 700; }
.audit-row .who { color: #67E8F9; font-weight: 700; }
.audit-row .w   { color: rgba(255,255,255,0.85); font-family: inherit; font-size: 11px; }
.audit-row .kind {
  padding: 2px 6px; border-radius: 3px; text-align: center; font-size: 8px; letter-spacing: 0.06em; font-weight: 900;
}
.audit-row .kind.read  { background: rgba(59, 130, 246, 0.2); color: #93C5FD; }
.audit-row .kind.write { background: rgba(16, 185, 129, 0.2); color: #6EE7B7; }
.audit-row .kind.auth  { background: rgba(147, 51, 234, 0.2); color: #C4B5FD; }
.audit-row .kind.deny  { background: rgba(239, 68, 68, 0.2);  color: #FCA5A5; }
.audit-row .kind.share { background: rgba(245, 158, 11, 0.2); color: #FBBF24; }
.audit-row .rc { text-align: right; color: rgba(255,255,255,0.55); font-weight: 700; }

/* Sensitivity legend */
.sens {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px;
  margin-bottom: 12px;
}
.sens .cell {
  padding: 12px 14px;
  border-radius: 8px;
  text-align: center;
}
.sens .cell .l { font-family: var(--font-mono); font-size: 9px; letter-spacing: 0.14em; font-weight: 900; text-transform: uppercase; }
.sens .cell .c { font-family: var(--font-mono); font-size: 20px; font-weight: 900; margin-top: 4px; }
.sens .cell .r { font-size: 10px; color: rgba(255,255,255,0.65); margin-top: 2px; }
.sens .cell.pub  { background: rgba(16,185,129,0.10); border: 1px solid rgba(16,185,129,0.3); }
.sens .cell.pub .l, .sens .cell.pub .c   { color: #6EE7B7; }
.sens .cell.oth  { background: rgba(6, 182, 212, 0.10); border: 1px solid rgba(6, 182, 212, 0.3); }
.sens .cell.oth .l, .sens .cell.oth .c   { color: #67E8F9; }
.sens .cell.res  { background: rgba(245, 158, 11, 0.10); border: 1px solid rgba(245, 158, 11, 0.35); }
.sens .cell.res .l, .sens .cell.res .c   { color: #FBBF24; }
.sens .cell.con  { background: rgba(239, 68, 68, 0.10); border: 1px solid rgba(239, 68, 68, 0.35); }
.sens .cell.con .l, .sens .cell.con .c   { color: #FCA5A5; }

.sec-actions {
  padding: 16px;
  background: rgba(15, 23, 42, 0.75);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px;
  display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap;
}
.sec-actions button {
  padding: 10px 18px; border-radius: 8px;
  font-size: 13px; font-weight: 700; cursor: pointer;
}
.sec-actions .primary { background: var(--nx-teal-500); color: #032530; border: 0; }
.sec-actions .primary:hover { background: var(--nx-teal-400); }
.sec-actions .danger  { background: #EF4444; color: #FFF; border: 0; }
.sec-actions .danger:hover { background: #DC2626; }
.sec-actions .ghost   { background: transparent; color: rgba(255,255,255,0.7); border: 1px solid rgba(255,255,255,0.14); }
.sec-actions .ghost:hover { color: #FFF; border-color: rgba(255,255,255,0.3); }
